  .file "video.c"
  .text
  .align  2
  .global render_scanline_text_base_normal
  .type render_scanline_text_base_normal, %function
render_scanline_text_base_normal:
  @ args = 0, pretend = 0, frame = 8
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr ip, .L516
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  add r5, ip, r0, asl #2
  ldrh  lr, [r5, #18]
  ldrh  r4, [ip, #6]
  add ip, ip, r0, asl #1
  add r4, r4, lr
  mov r7, r4, asl #23
  ldrh  r6, [ip, #8]
  mov r7, r7, lsr #23
  ldrh  r0, [r5, #16]
  cmp r7, #255
  movls lr, #0
  movhi lr, #1
  mov r5, r6, lsr #14
  rsb fp, r1, r2
  ldr r2, .L516+4
  ands  lr, lr, r5, lsr #1
  add r8, r3, r1, asl #1
  mov ip, r6, asl #3
  subne r3, r7, #256
  ldr r9, .L516+8
  ldr r2, [r2, r5, asl #2]
  movne r3, r3, lsr #3
  moveq r3, r4, asl #3
  add r0, r0, r1
  and ip, ip, #63488
  addne r3, r3, r2, lsr #3
  andeq r3, r3, #1984
  add ip, ip, r9
  mov r0, r0, asl #23
  addne r4, ip, r3, asl #6
  addeq r4, ip, r3
  mov r0, r0, lsr #23
  tst r5, #1
  andeq r0, r0, #255
  sub sp, sp, #8
  moveq r3, r0, lsr #3
  addeq sl, r4, r3, asl #1
  streq r4, [sp, #0]
  beq .L9
  cmp r0, #255
  subhi r0, r0, #256
  movhi r3, r0, lsr #3
  movls r3, r0, lsr #3
  addhi r3, r4, r3, asl #1
  addls sl, r4, r3, asl #1
  addls r4, r4, #2048
  addhi sl, r3, #2048
  strhi r4, [sp, #0]
  strls r4, [sp, #0]
.L9:
  ands  r5, r6, #128
  beq .L10
  and r3, r7, #7
  mov r2, r6, asl #12
  and r1, r0, #255
  mov r3, r3, asl #3
  and r2, r2, #49152
  add r2, r2, r3
  rsb r4, r1, #256
  mov r3, r3, asl #1
  rsb r3, r3, #56
  cmp fp, r4
  add r9, r2, r9
  str r3, [sp, #4]
  and r0, r0, #7
  bls .L487
  cmp r0, #0
  moveq ip, r0
  bne .L488
.L100:
  rsb r3, ip, r4
  movs  r7, r3, lsr #3
  beq .L124
  ldr lr, .L516+12
  mov r5, r8
  mov r6, #0
  b .L126
.L490:
  ldr r0, [ip, #4]
  ldr ip, [ip, #0]
  and r1, r0, #255
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  mov r3, r0, lsr #8
  and r3, r3, #255
  strh  r1, [r5, #6]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov r2, r0, lsr #16
  and r2, r2, #255
  strh  r3, [r5, #4]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r0, r0, lsr #24
  strh  r2, [r5, #2]  @ movhi
  mov r0, r0, asl #1
  ldrh  r0, [r0, lr]
  and r1, ip, #255
  strh  r0, [r5, #0]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  mov r2, ip, lsr #8
  and r2, r2, #255
  strh  r1, [r5, #14] @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r3, ip, lsr #16
  and r3, r3, #255
  strh  r2, [r5, #12] @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov ip, ip, lsr #24
  strh  r3, [r5, #10] @ movhi
  mov ip, ip, asl #1
  ldrh  ip, [ip, lr]
  add r6, r6, #1
  cmp r7, r6
  strh  ip, [r5, #8]  @ movhi
  add sl, sl, #2
  add r5, r5, #16
  beq .L489
.L126:
  ldrh  r2, [sl, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add ip, r9, r3, asl #6
  ldrne r3, [sp, #4]
  addne ip, ip, r3
  tst r2, #1024
  bne .L490
  ldmia ip, {r0, ip}  @ phole ldm
  and r1, r0, #255
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  mov r3, r0, lsr #8
  and r3, r3, #255
  strh  r1, [r5, #0]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov r2, r0, lsr #16
  and r2, r2, #255
  strh  r3, [r5, #2]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r0, r0, lsr #24
  strh  r2, [r5, #4]  @ movhi
  mov r0, r0, asl #1
  ldrh  r0, [r0, lr]
  and r1, ip, #255
  strh  r0, [r5, #6]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  mov r2, ip, lsr #8
  and r2, r2, #255
  strh  r1, [r5, #8]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r3, ip, lsr #16
  and r3, r3, #255
  strh  r2, [r5, #10] @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov ip, ip, lsr #24
  strh  r3, [r5, #12] @ movhi
  mov ip, ip, asl #1
  ldrh  ip, [ip, lr]
  add r6, r6, #1
  cmp r7, r6
  strh  ip, [r5, #14] @ movhi
  add sl, sl, #2
  add r5, r5, #16
  bne .L126
.L489:
  add r8, r8, r7, asl #4
.L124:
  rsb sl, r4, fp
  movs  r4, sl, lsr #3
  ldreq r3, [sp, #0]
  beq .L136
  ldr lr, .L516+12
  ldr r6, [sp, #0]
  mov r5, r8
  mov r7, #0
  b .L137
.L492:
  ldr r0, [ip, #4]
  ldr ip, [ip, #0]
  and r1, r0, #255
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  mov r3, r0, lsr #8
  and r3, r3, #255
  strh  r1, [r5, #6]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov r2, r0, lsr #16
  and r2, r2, #255
  strh  r3, [r5, #4]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r0, r0, lsr #24
  strh  r2, [r5, #2]  @ movhi
  mov r0, r0, asl #1
  ldrh  r0, [r0, lr]
  and r1, ip, #255
  strh  r0, [r5, #0]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  mov r2, ip, lsr #8
  and r2, r2, #255
  strh  r1, [r5, #14] @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r3, ip, lsr #16
  and r3, r3, #255
  strh  r2, [r5, #12] @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov ip, ip, lsr #24
  strh  r3, [r5, #10] @ movhi
  mov ip, ip, asl #1
  ldrh  ip, [ip, lr]
  add r7, r7, #1
  cmp r4, r7
  strh  ip, [r5, #8]  @ movhi
  add r6, r6, #2
  add r5, r5, #16
  beq .L491
.L137:
  ldrh  r2, [r6, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add ip, r9, r3, asl #6
  ldrne r3, [sp, #4]
  addne ip, ip, r3
  tst r2, #1024
  bne .L492
  ldmia ip, {r0, ip}  @ phole ldm
  and r1, r0, #255
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  mov r3, r0, lsr #8
  and r3, r3, #255
  strh  r1, [r5, #0]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov r2, r0, lsr #16
  and r2, r2, #255
  strh  r3, [r5, #2]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r0, r0, lsr #24
  strh  r2, [r5, #4]  @ movhi
  mov r0, r0, asl #1
  ldrh  r0, [r0, lr]
  and r1, ip, #255
  strh  r0, [r5, #6]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  mov r2, ip, lsr #8
  and r2, r2, #255
  strh  r1, [r5, #8]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r3, ip, lsr #16
  and r3, r3, #255
  strh  r2, [r5, #10] @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov ip, ip, lsr #24
  strh  r3, [r5, #12] @ movhi
  mov ip, ip, asl #1
  ldrh  ip, [ip, lr]
  add r7, r7, #1
  cmp r4, r7
  strh  ip, [r5, #14] @ movhi
  add r6, r6, #2
  add r5, r5, #16
  bne .L137
.L491:
  ldr r2, [sp, #0]
  add r8, r8, r4, asl #4
  add r3, r2, r4, asl #1
.L136:
  ands  r5, sl, #7
  beq .L431
  ldrh  r4, [r3, #0]
  mov r3, r4, asl #22
  mov r3, r3, lsr #22
  tst r4, #2048
  add ip, r9, r3, asl #6
  ldrne r3, [sp, #4]
  addne ip, ip, r3
  tst r4, #1024
  beq .L147
  cmp r5, #3
  bhi .L493
  ldr r1, [ip, #4]
  ldr lr, .L516+12
.L152:
  mov r0, #0
.L153:
  mov r3, r1, lsr #24
  mov r3, r3, asl #1
  add r0, r0, #1
  ldrh  r3, [r3, lr]
  cmp r5, r0
  strh  r3, [r8], #2  @ movhi
  mov r1, r1, asl #8
  bhi .L153
.L431:
  add sp, sp, #8
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L10:
  and r1, r0, #255
  and r3, r7, #7
  mov r2, r6, asl #12
  mov r3, r3, asl #2
  and r2, r2, #49152
  rsb r4, r1, #256
  add r2, r2, r3
  cmp fp, r4
  mov r3, r3, asl #1
  add ip, r2, r9
  rsb lr, r3, #28
  and r0, r0, #7
  bls .L494
  cmp r0, #0
  moveq r6, r0
  bne .L495
.L276:
  rsb r3, r6, r4
  movs  r9, r3, lsr #3
  beq .L296
  ldr r6, .L516+12
  mov r0, r8
  mov r7, #0
  b .L298
.L496:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L329
  ands  r3, r2, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #14] @ movhi
  streqh  r3, [r0, #14] @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #12] @ movhi
  streqh  r3, [r0, #12] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #10] @ movhi
  streqh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #8]  @ movhi
  streqh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #6]  @ movhi
  streqh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #4]  @ movhi
  streqh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #2]  @ movhi
  streqh  r3, [r0, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r2, [r6, #0]
  strneh  r3, [r0, #0]  @ movhi
  streqh  r2, [r0, #0]  @ movhi
.L328:
  add r7, r7, #1
  cmp r9, r7
  add r0, r0, #16
  beq .L354
.L497:
  add sl, sl, #2
.L298:
  ldrh  r1, [sl, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r5, r3, asl #4
  add r3, ip, r2, asl #5
  addne r3, r3, lr
  tst r1, #1024
  bne .L496
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L329
  ands  r3, r2, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #0]  @ movhi
  streqh  r3, [r0, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #2]  @ movhi
  streqh  r3, [r0, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #4]  @ movhi
  streqh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #6]  @ movhi
  streqh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #8]  @ movhi
  streqh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #10] @ movhi
  streqh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #12] @ movhi
  streqh  r3, [r0, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r2, [r6, #0]
  add r7, r7, #1
  strneh  r3, [r0, #14] @ movhi
  streqh  r2, [r0, #14] @ movhi
  cmp r9, r7
  add r0, r0, #16
  bne .L497
.L354:
  add r8, r8, r9, asl #4
.L296:
  rsb r9, r4, fp
  movs  r4, r9, lsr #3
  ldreq r2, [sp, #0]
  beq .L358
  ldr r6, .L516+12
  ldr r7, [sp, #0]
  mov r0, r8
  mov sl, #0
  b .L359
.L499:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L390
  ands  r3, r2, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #14] @ movhi
  streqh  r3, [r0, #14] @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #12] @ movhi
  streqh  r3, [r0, #12] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #10] @ movhi
  streqh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #8]  @ movhi
  streqh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #6]  @ movhi
  streqh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #4]  @ movhi
  streqh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #2]  @ movhi
  streqh  r3, [r0, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r2, [r6, #0]
  strneh  r3, [r0, #0]  @ movhi
  streqh  r2, [r0, #0]  @ movhi
.L389:
  add sl, sl, #1
  cmp r4, sl
  add r0, r0, #16
  add r7, r7, #2
  beq .L498
.L359:
  ldrh  r1, [r7, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r5, r3, asl #4
  add r3, ip, r2, asl #5
  addne r3, r3, lr
  tst r1, #1024
  bne .L499
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L390
  ands  r3, r2, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #0]  @ movhi
  streqh  r3, [r0, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #2]  @ movhi
  streqh  r3, [r0, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #4]  @ movhi
  streqh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #6]  @ movhi
  streqh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #8]  @ movhi
  streqh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #10] @ movhi
  streqh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  strneh  r3, [r0, #12] @ movhi
  streqh  r3, [r0, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r2, [r6, #0]
  add sl, sl, #1
  strneh  r3, [r0, #14] @ movhi
  streqh  r2, [r0, #14] @ movhi
  cmp r4, sl
  add r0, r0, #16
  add r7, r7, #2
  bne .L359
.L498:
  ldr r3, [sp, #0]
  add r8, r8, r4, asl #4
  add r2, r3, r4, asl #1
.L358:
  ands  r5, r9, #7
  beq .L431
  ldrh  r4, [r2, #0]
  mov r3, r4, asl #22
  mov r3, r3, lsr #22
  tst r4, #2048
  add r3, ip, r3, asl #5
  mov r2, r4, lsr #12
  addne r3, r3, lr
  tst r4, #1024
  mov r0, r2, asl #4
  beq .L419
  ldr r2, [r3, #0]
  ldr ip, .L516+12
  mov r1, #0
.L421:
  movs  r3, r2, lsr #28
  orr r3, r0, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldreqh  r3, [ip, #0]
  add r1, r1, #1
  strneh  r3, [r8, #0]  @ movhi
  streqh  r3, [r8, #0]  @ movhi
  cmp r5, r1
  mov r2, r2, asl #4
  add r8, r8, #2
  bne .L421
  b .L431
.L494:
  cmp r0, #0
  bne .L500
.L161:
  movs  r9, fp, lsr #3
  beq .L200
  ldr r5, .L516+12
  mov r0, r8
  mov r6, sl
  mov r7, #0
  b .L202
.L502:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L233
  ands  r3, r2, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #14] @ movhi
  streqh  r3, [r0, #14] @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #12] @ movhi
  streqh  r3, [r0, #12] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #10] @ movhi
  streqh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #8]  @ movhi
  streqh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #6]  @ movhi
  streqh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #4]  @ movhi
  streqh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #2]  @ movhi
  streqh  r3, [r0, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r2, [r5, #0]
  strneh  r3, [r0, #0]  @ movhi
  streqh  r2, [r0, #0]  @ movhi
.L232:
  add r7, r7, #1
  cmp r9, r7
  add r0, r0, #16
  add r6, r6, #2
  beq .L501
.L202:
  ldrh  r1, [r6, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r4, r3, asl #4
  add r3, ip, r2, asl #5
  addne r3, r3, lr
  tst r1, #1024
  bne .L502
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L233
  ands  r3, r2, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #0]  @ movhi
  streqh  r3, [r0, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #2]  @ movhi
  streqh  r3, [r0, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #4]  @ movhi
  streqh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #6]  @ movhi
  streqh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #8]  @ movhi
  streqh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #10] @ movhi
  streqh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  strneh  r3, [r0, #12] @ movhi
  streqh  r3, [r0, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r2, [r5, #0]
  add r7, r7, #1
  strneh  r3, [r0, #14] @ movhi
  streqh  r2, [r0, #14] @ movhi
  cmp r9, r7
  add r0, r0, #16
  add r6, r6, #2
  bne .L202
.L501:
  add r8, r8, r9, asl #4
  add sl, sl, r9, asl #1
.L200:
  ands  r4, fp, #7
  beq .L431
  ldrh  r1, [sl, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r3, ip, r3, asl #5
  mov r2, r1, lsr #12
  addne r3, r3, lr
  tst r1, #1024
  mov r0, r2, asl #4
  beq .L262
  ldr r2, [r3, #0]
  ldr ip, .L516+12
  mov r1, #0
.L264:
  movs  r3, r2, lsr #28
  orr r3, r0, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldreqh  r3, [ip, #0]
  add r1, r1, #1
  strneh  r3, [r8, #0]  @ movhi
  streqh  r3, [r8, #0]  @ movhi
  cmp r4, r1
  mov r2, r2, asl #4
  add r8, r8, #2
  bne .L264
  b .L431
.L487:
  cmp r0, #0
  bne .L503
.L14:
  movs  lr, fp, lsr #3
  beq .L74
  ldr r5, .L516+12
  mov r4, r8
  mov r6, sl
  mov r7, #0
  b .L76
.L505:
  ldr r0, [ip, #4]
  ldr ip, [ip, #0]
  and r1, r0, #255
  mov r1, r1, asl #1
  ldrh  r1, [r1, r5]
  mov r3, r0, lsr #8
  and r3, r3, #255
  strh  r1, [r4, #6]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, r5]
  mov r2, r0, lsr #16
  and r2, r2, #255
  strh  r3, [r4, #4]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, r5]
  mov r0, r0, lsr #24
  strh  r2, [r4, #2]  @ movhi
  mov r0, r0, asl #1
  ldrh  r0, [r0, r5]
  and r1, ip, #255
  strh  r0, [r4, #0]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, r5]
  mov r2, ip, lsr #8
  and r2, r2, #255
  strh  r1, [r4, #14] @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, r5]
  mov r3, ip, lsr #16
  and r3, r3, #255
  strh  r2, [r4, #12] @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, r5]
  mov ip, ip, lsr #24
  strh  r3, [r4, #10] @ movhi
  mov ip, ip, asl #1
  ldrh  ip, [ip, r5]
  add r7, r7, #1
  cmp lr, r7
  strh  ip, [r4, #8]  @ movhi
  add r6, r6, #2
  add r4, r4, #16
  beq .L504
.L76:
  ldrh  r2, [r6, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add ip, r9, r3, asl #6
  ldrne r3, [sp, #4]
  addne ip, ip, r3
  tst r2, #1024
  bne .L505
  ldmia ip, {r0, ip}  @ phole ldm
  and r1, r0, #255
  mov r1, r1, asl #1
  ldrh  r1, [r1, r5]
  mov r3, r0, lsr #8
  and r3, r3, #255
  strh  r1, [r4, #0]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, r5]
  mov r2, r0, lsr #16
  and r2, r2, #255
  strh  r3, [r4, #2]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, r5]
  mov r0, r0, lsr #24
  strh  r2, [r4, #4]  @ movhi
  mov r0, r0, asl #1
  ldrh  r0, [r0, r5]
  and r1, ip, #255
  strh  r0, [r4, #6]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, r5]
  mov r2, ip, lsr #8
  and r2, r2, #255
  strh  r1, [r4, #8]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, r5]
  mov r3, ip, lsr #16
  and r3, r3, #255
  strh  r2, [r4, #10] @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, r5]
  mov ip, ip, lsr #24
  strh  r3, [r4, #12] @ movhi
  mov ip, ip, asl #1
  ldrh  ip, [ip, r5]
  add r7, r7, #1
  cmp lr, r7
  strh  ip, [r4, #14] @ movhi
  add r6, r6, #2
  add r4, r4, #16
  bne .L76
.L504:
  add r8, r8, lr, asl #4
  add sl, sl, lr, asl #1
.L74:
  ands  r4, fp, #7
  beq .L431
  ldrh  r2, [sl, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add ip, r9, r3, asl #6
  ldrne r3, [sp, #4]
  addne ip, ip, r3
  tst r2, #1024
  beq .L86
  cmp r4, #3
  bhi .L506
  ldr r1, [ip, #4]
  ldr lr, .L516+12
.L91:
  mov r0, #0
.L92:
  mov r3, r1, lsr #24
  mov r3, r3, asl #1
  add r0, r0, #1
  ldrh  r3, [r3, lr]
  cmp r4, r0
  strh  r3, [r8], #2  @ movhi
  mov r1, r1, asl #8
  bhi .L92
  b .L431
.L329:
  ldrh  r3, [r6, #0]
  strh  r3, [r0, #14] @ movhi
  strh  r3, [r0, #0]  @ movhi
  strh  r3, [r0, #2]  @ movhi
  strh  r3, [r0, #4]  @ movhi
  strh  r3, [r0, #6]  @ movhi
  strh  r3, [r0, #8]  @ movhi
  strh  r3, [r0, #10] @ movhi
  strh  r3, [r0, #12] @ movhi
  b .L328
.L390:
  ldrh  r3, [r6, #0]
  strh  r3, [r0, #14] @ movhi
  strh  r3, [r0, #0]  @ movhi
  strh  r3, [r0, #2]  @ movhi
  strh  r3, [r0, #4]  @ movhi
  strh  r3, [r0, #6]  @ movhi
  strh  r3, [r0, #8]  @ movhi
  strh  r3, [r0, #10] @ movhi
  strh  r3, [r0, #12] @ movhi
  b .L389
.L517:
  .align  2
.L516:
  .word io_registers
  .word map_widths
  .word vram
  .word palette_ram_converted
.L500:
  rsb r4, r0, #8
  cmp fp, r4
  bcs .L163
  ldrh  r1, [sl, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add ip, ip, r3, asl #5
  mov r2, r1, lsr #12
  addne ip, ip, lr
  tst r1, #1024
  mov r4, r2, asl #4
  bne .L507
  cmp fp, #0
  ldr r2, [ip, #0]
  beq .L431
  mov r3, r0, asl #2
  mov r0, r2, lsr r3
  ldr r2, .L516+12
  mov r1, #0
.L176:
  ands  r3, r0, #15
  orr r3, r4, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  ldreqh  r3, [r2, #0]
  add r1, r1, #1
  strneh  r3, [r8, #0]  @ movhi
  streqh  r3, [r8, #0]  @ movhi
  cmp fp, r1
  mov r0, r0, lsr #4
  add r8, r8, #2
  bne .L176
  b .L431
.L495:
  ldrh  r5, [sl, #0]
  rsb r6, r0, #8
  mov r2, r5, asl #22
  mov r3, r5, lsr #12
  mov r2, r2, lsr #22
  tst r5, #2048
  mov r7, r3, asl #4
  add r3, ip, r2, asl #5
  addne r3, r3, lr
  tst r5, #1024
  beq .L279
  cmp r6, #0
  ldr r2, [r3, #0]
  beq .L281
  mov r3, r0, asl #2
  ldr r5, .L516+12
  mov r0, r2, asl r3
  mov r1, #0
  mov r2, r8
.L283:
  movs  r3, r0, lsr #28
  orr r3, r7, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  add r1, r1, #1
  strneh  r3, [r2, #0]  @ movhi
  streqh  r3, [r2, #0]  @ movhi
  cmp r6, r1
  mov r0, r0, asl #4
  add r2, r2, #2
  bne .L283
  add r8, r8, r6, asl #1
.L281:
  add sl, sl, #2
  b .L276
.L488:
  ldrh  r2, [sl, #0]
  rsb ip, r0, #8
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add r5, r9, r3, asl #6
  ldrne r3, [sp, #4]
  addne r5, r5, r3
  ands  r1, r2, #1024
  beq .L103
  cmp r0, #3
  bhi .L508
  subs  lr, ip, #4
  ldr r2, [r5, #4]
  ldreq r6, .L516+12
  beq .L111
  mov r3, r0, asl #3
  sub r3, r3, #32
  ldr r6, .L516+12
  mov r0, r2, asl r3
  mov r1, r8
  mov r2, #0
.L113:
  mov r3, r0, lsr #24
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, r6]
  cmp lr, r2
  strh  r3, [r1], #2  @ movhi
  mov r0, r0, asl #8
  bne .L113
  add r3, r8, ip, asl #1
  sub r8, r3, #8
.L111:
  ldr r3, [r5, #0]
  mov ip, lr
  and r0, r3, #255
  mov r0, r0, asl #1
  ldrh  r0, [r0, r6]
  mov r2, r3, lsr #8
  and r2, r2, #255
  strh  r0, [r8, #6]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, r6]
  mov r1, r3, lsr #16
  and r1, r1, #255
  strh  r2, [r8, #4]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, r6]
  mov r3, r3, lsr #24
  strh  r1, [r8, #2]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, r6]
  strh  r3, [r8], #8  @ movhi
.L107:
  add sl, sl, #2
  b .L100
.L503:
  rsb ip, r0, #8
  cmp fp, ip
  bcs .L16
  ldrh  r2, [sl, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add ip, r9, r3, asl #6
  ldrne r3, [sp, #4]
  addne ip, ip, r3
  ands  r4, r2, #1024
  bne .L509
  cmp r0, #3
  bls .L37
  cmp fp, #0
  ldr r2, [ip, #4]
  beq .L431
  mov r3, r0, asl #3
  sub r3, r3, #32
  ldr r1, .L516+12
  mov r0, r2, lsr r3
  mov r2, r4
.L40:
  and r3, r0, #255
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, r1]
  cmp fp, r2
  strh  r3, [r8], #2  @ movhi
  mov r0, r0, lsr #8
  bne .L40
  b .L431
.L233:
  ldrh  r3, [r5, #0]
  strh  r3, [r0, #14] @ movhi
  strh  r3, [r0, #0]  @ movhi
  strh  r3, [r0, #2]  @ movhi
  strh  r3, [r0, #4]  @ movhi
  strh  r3, [r0, #6]  @ movhi
  strh  r3, [r0, #8]  @ movhi
  strh  r3, [r0, #10] @ movhi
  strh  r3, [r0, #12] @ movhi
  b .L232
.L147:
  cmp r5, #3
  bhi .L510
  ldr r1, [ip, #0]
  ldr lr, .L516+12
.L157:
  mov r0, #0
.L158:
  and r3, r1, #255
  mov r3, r3, asl #1
  add r0, r0, #1
  ldrh  r3, [r3, lr]
  cmp r5, r0
  strh  r3, [r8], #2  @ movhi
  mov r1, r1, lsr #8
  bhi .L158
  b .L431
.L419:
  ldr r2, [r3, #0]
  ldr ip, .L516+12
  mov r1, #0
.L426:
  ands  r3, r2, #15
  orr r3, r0, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldreqh  r3, [ip, #0]
  add r1, r1, #1
  strneh  r3, [r8, #0]  @ movhi
  streqh  r3, [r8, #0]  @ movhi
  cmp r5, r1
  mov r2, r2, lsr #4
  add r8, r8, #2
  bne .L426
  b .L431
.L86:
  cmp r4, #3
  bhi .L511
  ldr r1, [ip, #0]
  ldr lr, .L516+12
.L96:
  mov r0, #0
.L97:
  and r3, r1, #255
  mov r3, r3, asl #1
  add r0, r0, #1
  ldrh  r3, [r3, lr]
  cmp r4, r0
  strh  r3, [r8], #2  @ movhi
  mov r1, r1, lsr #8
  bhi .L97
  b .L431
.L262:
  ldr r2, [r3, #0]
  ldr ip, .L516+12
  mov r1, #0
.L269:
  ands  r3, r2, #15
  orr r3, r0, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldreqh  r3, [ip, #0]
  add r1, r1, #1
  strneh  r3, [r8, #0]  @ movhi
  streqh  r3, [r8, #0]  @ movhi
  cmp r4, r1
  mov r2, r2, lsr #4
  add r8, r8, #2
  bne .L269
  b .L431
.L279:
  cmp r6, #0
  ldr r2, [r3, #0]
  beq .L281
  mov r3, r0, asl #2
  ldr r5, .L516+12
  mov r0, r2, lsr r3
  mov r1, #0
  mov r2, r8
.L290:
  ands  r3, r0, #15
  orr r3, r7, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldreqh  r3, [r5, #0]
  add r1, r1, #1
  strneh  r3, [r2, #0]  @ movhi
  streqh  r3, [r2, #0]  @ movhi
  cmp r6, r1
  mov r0, r0, lsr #4
  add r2, r2, #2
  bne .L290
  add r8, r8, r6, asl #1
  b .L281
.L163:
  ldrh  r1, [sl, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r5, r3, asl #4
  add r3, ip, r2, asl #5
  addne r3, r3, lr
  tst r1, #1024
  bne .L512
  cmp r4, #0
  ldr r2, [r3, #0]
  beq .L185
  mov r3, r0, asl #2
  ldr r6, .L516+12
  mov r0, r2, lsr r3
  mov r1, #0
  mov r2, r8
.L194:
  ands  r3, r0, #15
  orr r3, r5, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  add r1, r1, #1
  strneh  r3, [r2, #0]  @ movhi
  streqh  r3, [r2, #0]  @ movhi
  cmp r4, r1
  mov r0, r0, lsr #4
  add r2, r2, #2
  bne .L194
.L484:
  add r8, r8, r4, asl #1
.L185:
  rsb fp, r4, fp
  add sl, sl, #2
  b .L161
.L103:
  cmp r0, #3
  bhi .L513
  subs  lr, ip, #4
  ldr r2, [r5, #0]
  ldreq r6, .L516+12
  beq .L120
  mov r3, r0, asl #3
  ldr r6, .L516+12
  mov r0, r2, lsr r3
  mov r2, r1
  mov r1, r8
.L122:
  and r3, r0, #255
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, r6]
  cmp lr, r2
  strh  r3, [r1], #2  @ movhi
  mov r0, r0, lsr #8
  bne .L122
  add r3, r8, ip, asl #1
  sub r8, r3, #8
.L120:
  ldr r3, [r5, #4]
  mov ip, lr
  and r0, r3, #255
  mov r0, r0, asl #1
  ldrh  r0, [r0, r6]
  mov r2, r3, lsr #8
  and r2, r2, #255
  strh  r0, [r8, #0]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, r6]
  mov r1, r3, lsr #16
  and r1, r1, #255
  strh  r2, [r8, #2]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, r6]
  mov r3, r3, lsr #24
  strh  r1, [r8, #4]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, r6]
  add sl, sl, #2
  strh  r3, [r8, #6]  @ movhi
  add r8, r8, #8
  b .L100
.L16:
  ldrh  r2, [sl, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add lr, r9, r3, asl #6
  ldrne r3, [sp, #4]
  addne lr, lr, r3
  ands  r1, r2, #1024
  bne .L514
  cmp r0, #3
  bls .L65
  cmp ip, #0
  ldr r2, [lr, #4]
  beq .L57
  mov r3, r0, asl #3
  sub r3, r3, #32
  ldr lr, .L516+12
  mov r0, r2, lsr r3
  mov r2, r1
  mov r1, r8
.L68:
  and r3, r0, #255
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, lr]
  cmp ip, r2
  strh  r3, [r1], #2  @ movhi
  mov r0, r0, lsr #8
  bne .L68
.L482:
  add r8, r8, ip, asl #1
.L57:
  rsb fp, ip, fp
  add sl, sl, #2
  b .L14
.L510:
  ldr r1, [ip, #0]
  ldr lr, .L516+12
  and r0, r1, #255
  mov r0, r0, asl #1
  ldrh  r0, [r0, lr]
  mov r3, r1, lsr #8
  and r3, r3, #255
  strh  r0, [r8, #0]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov r2, r1, lsr #16
  and r2, r2, #255
  strh  r3, [r8, #2]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r1, r1, lsr #24
  strh  r2, [r8, #4]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  subs  r5, r5, #4
  strh  r1, [r8, #6]  @ movhi
  ldr r1, [ip, #4]
  addne r8, r8, #8
  bne .L157
  b .L431
.L493:
  ldr r1, [ip, #4]
  ldr lr, .L516+12
  and r0, r1, #255
  mov r0, r0, asl #1
  ldrh  r0, [r0, lr]
  mov r3, r1, lsr #8
  and r3, r3, #255
  strh  r0, [r8, #6]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov r2, r1, lsr #16
  and r2, r2, #255
  strh  r3, [r8, #4]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r1, r1, lsr #24
  strh  r2, [r8, #2]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  subs  r5, r5, #4
  strh  r1, [r8, #0]  @ movhi
  ldr r1, [ip, #0]
  addne r8, r8, #8
  bne .L152
  b .L431
.L506:
  ldr r1, [ip, #4]
  ldr lr, .L516+12
  and r0, r1, #255
  mov r0, r0, asl #1
  ldrh  r0, [r0, lr]
  mov r3, r1, lsr #8
  and r3, r3, #255
  strh  r0, [r8, #6]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov r2, r1, lsr #16
  and r2, r2, #255
  strh  r3, [r8, #4]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r1, r1, lsr #24
  strh  r2, [r8, #2]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  subs  r4, r4, #4
  strh  r1, [r8, #0]  @ movhi
  ldr r1, [ip, #0]
  addne r8, r8, #8
  bne .L91
  b .L431
.L511:
  ldr r1, [ip, #0]
  ldr lr, .L516+12
  and r0, r1, #255
  mov r0, r0, asl #1
  ldrh  r0, [r0, lr]
  mov r3, r1, lsr #8
  and r3, r3, #255
  strh  r0, [r8, #0]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  mov r2, r1, lsr #16
  and r2, r2, #255
  strh  r3, [r8, #2]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  mov r1, r1, lsr #24
  strh  r2, [r8, #4]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, lr]
  subs  r4, r4, #4
  strh  r1, [r8, #6]  @ movhi
  ldr r1, [ip, #4]
  addne r8, r8, #8
  bne .L96
  b .L431
.L509:
  cmp r0, #3
  bls .L22
  cmp fp, #0
  ldr r2, [ip, #0]
  beq .L431
  mov r3, r0, asl #3
  sub r3, r3, #32
  ldr r1, .L516+12
  mov r0, r2, asl r3
  mov r2, #0
.L26:
  mov r3, r0, lsr #24
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, r1]
  cmp fp, r2
  strh  r3, [r8], #2  @ movhi
  mov r0, r0, asl #8
  bne .L26
  b .L431
.L508:
  cmp ip, #0
  ldr r2, [r5, #0]
  beq .L107
  mov r3, r0, asl #3
  sub r3, r3, #32
  ldr lr, .L516+12
  mov r0, r2, asl r3
  mov r1, r8
  mov r2, #0
.L109:
  mov r3, r0, lsr #24
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, lr]
  cmp ip, r2
  strh  r3, [r1], #2  @ movhi
  mov r0, r0, asl #8
  bne .L109
  add r8, r8, ip, asl #1
.L515:
  add sl, sl, #2
  b .L100
.L507:
  cmp fp, #0
  ldr r2, [ip, #0]
  beq .L431
  mov r3, r0, asl #2
  mov r0, r2, asl r3
  ldr r2, .L516+12
  mov r1, r5
.L170:
  movs  r3, r0, lsr #28
  orr r3, r4, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  ldreqh  r3, [r2, #0]
  add r1, r1, #1
  strneh  r3, [r8, #0]  @ movhi
  streqh  r3, [r8, #0]  @ movhi
  cmp fp, r1
  mov r0, r0, asl #4
  add r8, r8, #2
  bne .L170
  b .L431
.L514:
  cmp r0, #3
  bls .L55
  cmp ip, #0
  ldr r2, [lr, #0]
  beq .L57
  mov r3, r0, asl #3
  sub r3, r3, #32
  ldr lr, .L516+12
  mov r0, r2, asl r3
  mov r1, r8
  mov r2, #0
.L59:
  mov r3, r0, lsr #24
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, lr]
  cmp ip, r2
  strh  r3, [r1], #2  @ movhi
  mov r0, r0, asl #8
  bne .L59
  b .L482
.L513:
  cmp ip, #0
  ldr r2, [r5, #4]
  beq .L107
  mov r3, r0, asl #3
  sub r3, r3, #32
  ldr lr, .L516+12
  mov r0, r2, lsr r3
  mov r2, r1
  mov r1, r8
.L118:
  and r3, r0, #255
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, lr]
  cmp ip, r2
  strh  r3, [r1], #2  @ movhi
  mov r0, r0, lsr #8
  bne .L118
  add r8, r8, ip, asl #1
  b .L515
.L512:
  cmp r4, #0
  ldr r2, [r3, #0]
  beq .L185
  mov r3, r0, asl #2
  ldr r6, .L516+12
  mov r0, r2, asl r3
  mov r1, #0
  mov r2, r8
.L187:
  movs  r3, r0, lsr #28
  orr r3, r5, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldreqh  r3, [r6, #0]
  add r1, r1, #1
  strneh  r3, [r2, #0]  @ movhi
  streqh  r3, [r2, #0]  @ movhi
  cmp r4, r1
  mov r0, r0, asl #4
  add r2, r2, #2
  bne .L187
  b .L484
.L65:
  subs  r4, ip, #4
  ldr r2, [lr, #0]
  ldreq r5, .L516+12
  beq .L70
  mov r3, r0, asl #3
  ldr r5, .L516+12
  mov r0, r2, lsr r3
  mov r2, r1
  mov r1, r8
.L72:
  and r3, r0, #255
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, r5]
  cmp r4, r2
  strh  r3, [r1], #2  @ movhi
  mov r0, r0, lsr #8
  bne .L72
  add r3, r8, ip, asl #1
  sub r8, r3, #8
.L70:
  ldr r3, [lr, #4]
  and r0, r3, #255
  mov r0, r0, asl #1
  ldrh  r0, [r0, r5]
  mov r2, r3, lsr #8
  and r2, r2, #255
  strh  r0, [r8, #0]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, r5]
  mov r1, r3, lsr #16
  and r1, r1, #255
  strh  r2, [r8, #2]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, r5]
  mov r3, r3, lsr #24
  strh  r1, [r8, #4]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, r5]
  strh  r3, [r8, #6]  @ movhi
  add r8, r8, #8
  b .L57
.L55:
  subs  r4, ip, #4
  ldr r2, [lr, #4]
  ldreq r5, .L516+12
  beq .L61
  mov r3, r0, asl #3
  sub r3, r3, #32
  ldr r5, .L516+12
  mov r0, r2, asl r3
  mov r1, r8
  mov r2, #0
.L63:
  mov r3, r0, lsr #24
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, r5]
  cmp r4, r2
  strh  r3, [r1], #2  @ movhi
  mov r0, r0, asl #8
  bne .L63
  add r3, r8, ip, asl #1
  sub r8, r3, #8
.L61:
  ldr r3, [lr, #0]
  and r0, r3, #255
  mov r0, r0, asl #1
  ldrh  r0, [r0, r5]
  mov r2, r3, lsr #8
  and r2, r2, #255
  strh  r0, [r8, #6]  @ movhi
  mov r2, r2, asl #1
  ldrh  r2, [r2, r5]
  mov r1, r3, lsr #16
  and r1, r1, #255
  strh  r2, [r8, #4]  @ movhi
  mov r1, r1, asl #1
  ldrh  r1, [r1, r5]
  mov r3, r3, lsr #24
  strh  r1, [r8, #2]  @ movhi
  mov r3, r3, asl #1
  ldrh  r3, [r3, r5]
  strh  r3, [r8], #8  @ movhi
  b .L57
.L22:
  mov r3, r0, asl #3
  ldr r1, [ip, #4]
  add r2, fp, r0
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L27
  cmp fp, #0
  ldrne r0, .L516+12
  movne r2, #0
  beq .L431
.L36:
  mov r3, r1, lsr #24
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, r0]
  cmp fp, r2
  strh  r3, [r8], #2  @ movhi
  mov r1, r1, asl #8
  bne .L36
  b .L431
.L37:
  add r2, fp, r0
  ldr r3, [ip, #0]
  cmp r2, #4
  mov r1, r0, asl #3
  mov r2, r3, lsr r1
  bhi .L41
  cmp fp, #0
  ldrne r0, .L516+12
  movne r1, r4
  beq .L431
.L50:
  and r3, r2, #255
  mov r3, r3, asl #1
  add r1, r1, #1
  ldrh  r3, [r3, r0]
  cmp fp, r1
  strh  r3, [r8], #2  @ movhi
  mov r2, r2, lsr #8
  bne .L50
  b .L431
.L27:
  rsbs  lr, r0, #4
  beq .L30
  ldr r4, .L516+12
  mov r0, r8
  mov r2, #0
.L32:
  mov r3, r1, lsr #24
  mov r3, r3, asl #1
  add r2, r2, #1
  ldrh  r3, [r3, r4]
  cmp lr, r2
  strh  r3, [r0], #2  @ movhi
  mov r1, r1, asl #8
  bne .L32
  add r8, r8, lr, asl #1
.L30:
  subs  r0, fp, lr
  ldr r2, [ip, #0]
  beq .L431
  ldr ip, .L516+12
  mov r1, #0
.L35:
  mov r3, r2, lsr #24
  mov r3, r3, asl #1
  add r1, r1, #1
  ldrh  r3, [r3, ip]
  cmp r0, r1
  strh  r3, [r8], #2  @ movhi
  mov r2, r2, asl #8
  bne .L35
  b .L431
.L41:
  rsbs  lr, r0, #4
  beq .L44
  ldr r5, .L516+12
  mov r1, r4
  mov r0, r8
.L46:
  and r3, r2, #255
  mov r3, r3, asl #1
  add r1, r1, #1
  ldrh  r3, [r3, r5]
  cmp lr, r1
  strh  r3, [r0], #2  @ movhi
  mov r2, r2, lsr #8
  bne .L46
  add r8, r8, lr, asl #1
.L44:
  subs  r0, fp, lr
  ldr r2, [ip, #4]
  beq .L431
  ldr ip, .L516+12
  mov r1, #0
.L49:
  and r3, r2, #255
  mov r3, r3, asl #1
  add r1, r1, #1
  ldrh  r3, [r3, ip]
  cmp r0, r1
  strh  r3, [r8], #2  @ movhi
  mov r2, r2, lsr #8
  bne .L49
  b .L431
  .size render_scanline_text_base_normal, .-render_scanline_text_base_normal
  .align  2
  .global render_scanline_text_transparent_normal
  .type render_scanline_text_transparent_normal, %function
render_scanline_text_transparent_normal:
  @ args = 0, pretend = 0, frame = 4
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr ip, .L1161
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  add r5, ip, r0, asl #2
  ldrh  lr, [r5, #18]
  ldrh  r4, [ip, #6]
  add ip, ip, r0, asl #1
  add r4, r4, lr
  mov r6, r4, asl #23
  ldrh  r7, [ip, #8]
  mov r6, r6, lsr #23
  ldrh  r0, [r5, #16]
  cmp r6, #255
  movls lr, #0
  movhi lr, #1
  mov r5, r7, lsr #14
  rsb r9, r1, r2
  ldr r2, .L1161+4
  ands  lr, lr, r5, lsr #1
  mov ip, r7, asl #3
  add lr, r3, r1, asl #1
  ldr r8, .L1161+8
  subne r3, r6, #256
  ldr r2, [r2, r5, asl #2]
  movne r3, r3, lsr #3
  moveq r3, r4, asl #3
  add r0, r0, r1
  and ip, ip, #63488
  addne r3, r3, r2, lsr #3
  andeq r3, r3, #1984
  add ip, ip, r8
  mov r0, r0, asl #23
  addne r4, ip, r3, asl #6
  addeq r4, ip, r3
  mov r0, r0, lsr #23
  tst r5, #1
  andeq r0, r0, #255
  sub sp, sp, #4
  moveq r3, r0, lsr #3
  addeq ip, r4, r3, asl #1
  streq r4, [sp, #0]
  beq .L526
  cmp r0, #255
  subhi r0, r0, #256
  movhi r3, r0, lsr #3
  movls r3, r0, lsr #3
  addhi r3, r4, r3, asl #1
  addls ip, r4, r3, asl #1
  addls r4, r4, #2048
  addhi ip, r3, #2048
  strhi r4, [sp, #0]
  strls r4, [sp, #0]
.L526:
  tst r7, #128
  beq .L527
  and r1, r0, #255
  and r3, r6, #7
  mov r2, r7, asl #12
  mov r3, r3, asl #3
  and r2, r2, #49152
  rsb sl, r1, #256
  add r2, r2, r3
  cmp r9, sl
  mov r3, r3, asl #1
  add r8, r2, r8
  rsb fp, r3, #56
  and r0, r0, #7
  bls .L1136
  cmp r0, #0
  moveq r5, r0
  bne .L1137
.L729:
  rsb r3, r5, sl
  movs  r7, r3, lsr #3
  beq .L783
  ldr r5, .L1161+12
  mov r0, lr
  mov r6, #0
  b .L785
.L1138:
  ldr r2, [r1, #4]
  cmp r2, #0
  beq .L790
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #0]  @ movhi
.L790:
  ldr r2, [r1, #0]
  cmp r2, #0
  beq .L799
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #14] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #12] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #10] @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #8]  @ movhi
.L799:
  add r6, r6, #1
  cmp r7, r6
  add r0, r0, #16
  beq .L825
.L1139:
  add ip, ip, #2
.L785:
  ldrh  r2, [ip, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add r1, r8, r3, asl #6
  addne r1, r1, fp
  tst r2, #1024
  bne .L1138
  ldr r2, [r1, #0]
  cmp r2, #0
  beq .L808
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #4]  @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #6]  @ movhi
.L808:
  ldr r2, [r1, #4]
  cmp r2, #0
  beq .L799
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  add r6, r6, #1
  strneh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #12] @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #14] @ movhi
  cmp r7, r6
  add r0, r0, #16
  bne .L1139
.L825:
  add lr, lr, r7, asl #4
.L783:
  rsb sl, sl, r9
  movs  r4, sl, lsr #3
  ldreq r3, [sp, #0]
  beq .L829
  ldr r7, .L1161+12
  ldr r6, [sp, #0]
  mov r5, lr
  mov r2, #0
  b .L830
.L1141:
  ldr r1, [r0, #4]
  cmp r1, #0
  beq .L835
  ands  r3, r1, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r1, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #0]  @ movhi
.L835:
  ldr r1, [r0, #0]
  cmp r1, #0
  beq .L844
  ands  r3, r1, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #14] @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #12] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #10] @ movhi
  movs  r3, r1, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #8]  @ movhi
.L844:
  add r2, r2, #1
  cmp r4, r2
  add r5, r5, #16
  add r6, r6, #2
  beq .L1140
.L830:
  ldrh  r1, [r6, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r0, r8, r3, asl #6
  addne r0, r0, fp
  tst r1, #1024
  bne .L1141
  ldr r1, [r0, #0]
  cmp r1, #0
  beq .L853
  ands  r3, r1, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #0]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #2]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #4]  @ movhi
  movs  r3, r1, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #6]  @ movhi
.L853:
  ldr r1, [r0, #4]
  cmp r1, #0
  beq .L844
  ands  r3, r1, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  add r2, r2, #1
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  add r6, r6, #2
  strneh  r3, [r5, #10] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #12] @ movhi
  movs  r3, r1, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r5, #14] @ movhi
  cmp r4, r2
  add r5, r5, #16
  bne .L830
.L1140:
  ldr r2, [sp, #0]
  add lr, lr, r4, asl #4
  add r3, r2, r4, asl #1
.L829:
  ands  r5, sl, #7
  beq .L1118
  ldrh  r4, [r3, #0]
  mov r3, r4, asl #22
  mov r3, r3, lsr #22
  tst r4, #2048
  add ip, r8, r3, asl #6
  addne ip, ip, fp
  tst r4, #1024
  beq .L874
  cmp r5, #3
  ldrls r2, [ip, #4]
  bls .L888
  ldr r1, [ip, #4]
  cmp r1, #0
  beq .L878
  ands  r2, r1, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #8
  strneh  r2, [lr, #6]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #16
  strneh  r2, [lr, #4]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #2]  @ movhi
  movs  r2, r1, lsr #24
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #0]  @ movhi
.L878:
  subs  r5, r5, #4
  ldr r2, [ip, #0]
  addne lr, lr, #8
  beq .L1118
.L888:
  mov r1, #0
.L889:
  movs  r3, r2, lsr #24
  mov ip, r3, asl #1
  ldrne r3, .L1161+12
  mov r0, r1, asl #1
  ldrneh  ip, [ip, r3]
  add r1, r1, #1
  strneh  ip, [r0, lr]  @ movhi
  cmp r1, r5
  mov r2, r2, asl #8
  bcc .L889
.L1118:
  add sp, sp, #4
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L527:
  and r1, r0, #255
  and r3, r6, #7
  mov r2, r7, asl #12
  mov r3, r3, asl #2
  and r2, r2, #49152
  rsb r4, r1, #256
  add r2, r2, r3
  cmp r9, r4
  mov r3, r3, asl #1
  add r8, r2, r8
  rsb fp, r3, #28
  and r0, r0, #7
  bls .L1142
  cmp r0, #0
  moveq r6, r0
  bne .L1143
.L1003:
  rsb r3, r6, r4
  movs  sl, r3, lsr #3
  beq .L1021
  ldr r6, .L1161+12
  mov r0, lr
  mov r7, #0
  b .L1023
.L1144:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L1028
  ands  r3, r2, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #14] @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #12] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #0]  @ movhi
.L1028:
  add r7, r7, #1
  cmp sl, r7
  add r0, r0, #16
  beq .L1061
.L1145:
  add ip, ip, #2
.L1023:
  ldrh  r1, [ip, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r5, r3, asl #4
  add r3, r8, r2, asl #5
  addne r3, r3, fp
  tst r1, #1024
  bne .L1144
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L1028
  ands  r3, r2, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  add r7, r7, #1
  strneh  r3, [r0, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #14] @ movhi
  cmp sl, r7
  add r0, r0, #16
  bne .L1145
.L1061:
  add lr, lr, sl, asl #4
.L1021:
  rsb sl, r4, r9
  movs  r4, sl, lsr #3
  ldreq r2, [sp, #0]
  beq .L1065
  ldr r7, .L1161+12
  ldr r6, [sp, #0]
  mov r0, lr
  mov ip, #0
  b .L1066
.L1147:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L1071
  ands  r3, r2, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #14] @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #12] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #0]  @ movhi
.L1071:
  add ip, ip, #1
  cmp r4, ip
  add r0, r0, #16
  add r6, r6, #2
  beq .L1146
.L1066:
  ldrh  r1, [r6, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r5, r3, asl #4
  add r3, r8, r2, asl #5
  addne r3, r3, fp
  tst r1, #1024
  bne .L1147
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L1071
  ands  r3, r2, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  add ip, ip, #1
  strneh  r3, [r0, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  add r6, r6, #2
  strneh  r3, [r0, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r5, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #14] @ movhi
  cmp r4, ip
  add r0, r0, #16
  bne .L1066
.L1146:
  ldr r3, [sp, #0]
  add lr, lr, r4, asl #4
  add r2, r3, r4, asl #1
.L1065:
  ands  r5, sl, #7
  beq .L1118
  ldrh  r4, [r2, #0]
  mov r3, r4, asl #22
  mov r3, r3, lsr #22
  tst r4, #2048
  add r3, r8, r3, asl #5
  mov r2, r4, lsr #12
  addne r3, r3, fp
  tst r4, #1024
  mov ip, r2, asl #4
  beq .L1108
  ldr r2, [r3, #0]
  ldr r4, .L1161+12
  mov r0, #0
.L1110:
  movs  r3, r2, lsr #28
  orr r3, ip, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r5, r0
  mov r2, r2, asl #4
  bne .L1110
  b .L1118
.L1142:
  cmp r0, #0
  bne .L1148
.L912:
  movs  sl, r9, lsr #3
  beq .L947
  ldr r6, .L1161+12
  mov r0, lr
  mov r5, ip
  mov r7, #0
  b .L949
.L1150:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L954
  ands  r3, r2, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #14] @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #12] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #0]  @ movhi
.L954:
  add r7, r7, #1
  cmp sl, r7
  add r0, r0, #16
  add r5, r5, #2
  beq .L1149
.L949:
  ldrh  r1, [r5, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r4, r3, asl #4
  add r3, r8, r2, asl #5
  addne r3, r3, fp
  tst r1, #1024
  bne .L1150
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L954
  ands  r3, r2, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  add r7, r7, #1
  strneh  r3, [r0, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  add r5, r5, #2
  strneh  r3, [r0, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r4, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #14] @ movhi
  cmp sl, r7
  add r0, r0, #16
  bne .L949
.L1149:
  add lr, lr, sl, asl #4
  add ip, ip, sl, asl #1
.L947:
  ands  r4, r9, #7
  beq .L1118
  ldrh  r1, [ip, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r3, r8, r3, asl #5
  mov r2, r1, lsr #12
  addne r3, r3, fp
  tst r1, #1024
  mov ip, r2, asl #4
  beq .L991
  ldr r2, [r3, #0]
  ldr r5, .L1161+12
  mov r0, #0
.L993:
  movs  r3, r2, lsr #28
  orr r3, ip, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r4, r0
  mov r2, r2, asl #4
  bne .L993
  b .L1118
.L1136:
  cmp r0, #0
  bne .L1151
.L531:
  movs  r7, r9, lsr #3
  beq .L645
  ldr r5, .L1161+12
  mov r0, lr
  mov r4, ip
  mov r6, #0
  b .L647
.L1153:
  ldr r2, [r1, #4]
  cmp r2, #0
  beq .L652
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #0]  @ movhi
.L652:
  ldr r2, [r1, #0]
  cmp r2, #0
  beq .L661
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #14] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #12] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #10] @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #8]  @ movhi
.L661:
  add r6, r6, #1
  cmp r7, r6
  add r0, r0, #16
  add r4, r4, #2
  beq .L1152
.L647:
  ldrh  r2, [r4, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add r1, r8, r3, asl #6
  addne r1, r1, fp
  tst r2, #1024
  bne .L1153
  ldr r2, [r1, #0]
  cmp r2, #0
  beq .L670
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #4]  @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #6]  @ movhi
.L670:
  ldr r2, [r1, #4]
  cmp r2, #0
  beq .L661
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  add r6, r6, #1
  strneh  r3, [r0, #8]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  add r4, r4, #2
  strneh  r3, [r0, #10] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #12] @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #14] @ movhi
  cmp r7, r6
  add r0, r0, #16
  bne .L647
.L1152:
  add lr, lr, r7, asl #4
  add ip, ip, r7, asl #1
.L645:
  ands  r4, r9, #7
  beq .L1118
  ldrh  r2, [ip, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add ip, r8, r3, asl #6
  addne ip, ip, fp
  tst r2, #1024
  beq .L691
  cmp r4, #3
  ldrls r2, [ip, #4]
  bls .L705
  ldr r1, [ip, #4]
  cmp r1, #0
  beq .L695
  ands  r2, r1, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #8
  strneh  r2, [lr, #6]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #16
  strneh  r2, [lr, #4]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #2]  @ movhi
  movs  r2, r1, lsr #24
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #0]  @ movhi
.L695:
  subs  r4, r4, #4
  ldr r2, [ip, #0]
  addne lr, lr, #8
  beq .L1118
.L705:
  mov r1, #0
.L706:
  movs  r3, r2, lsr #24
  mov ip, r3, asl #1
  ldrne r3, .L1161+12
  mov r0, r1, asl #1
  ldrneh  ip, [ip, r3]
  add r1, r1, #1
  strneh  ip, [r0, lr]  @ movhi
  cmp r4, r1
  mov r2, r2, asl #8
  bhi .L706
  b .L1118
.L1148:
  rsb r4, r0, #8
  cmp r9, r4
  bcs .L914
  ldrh  r1, [ip, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add ip, r8, r3, asl #5
  mov r2, r1, lsr #12
  addne ip, ip, fp
  tst r1, #1024
  mov r2, r2, asl #4
  bne .L1154
  cmp r9, #0
  ldr ip, [ip, #0]
  beq .L1118
  mov r3, r0, asl #2
  ldr r4, .L1161+12
  mov r0, ip, lsr r3
  mov ip, #0
.L926:
  ands  r3, r0, #15
  orr r3, r2, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r1, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r9, ip
  mov r0, r0, lsr #4
  bne .L926
  b .L1118
.L1162:
  .align  2
.L1161:
  .word io_registers
  .word map_widths
  .word vram
  .word palette_ram_converted
.L1137:
  ldrh  r2, [ip, #0]
  rsb r5, r0, #8
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add r6, r8, r3, asl #6
  addne r6, r6, fp
  ands  r2, r2, #1024
  beq .L732
  cmp r0, #3
  bhi .L1155
  subs  r4, r5, #4
  ldr r2, [r6, #4]
  beq .L743
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r0, r2, asl r3
  ldr r7, .L1161+12
  mov r1, #0
.L745:
  movs  r3, r0, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r4, r1
  mov r0, r0, asl #8
  bne .L745
  add r3, lr, r5, asl #1
  sub lr, r3, #8
.L743:
  ldr r1, [r6, #0]
  cmp r1, #0
  beq .L774
  ands  r2, r1, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #8
  strneh  r2, [lr, #6]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #16
  strneh  r2, [lr, #4]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #2]  @ movhi
  movs  r2, r1, lsr #24
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #0]  @ movhi
.L774:
  add lr, lr, #8
  mov r5, r4
.L736:
  add ip, ip, #2
  b .L729
.L1143:
  ldrh  r5, [ip, #0]
  rsb r6, r0, #8
  mov r2, r5, asl #22
  mov r3, r5, lsr #12
  mov r2, r2, lsr #22
  tst r5, #2048
  mov r7, r3, asl #4
  add r3, r8, r2, asl #5
  addne r3, r3, fp
  tst r5, #1024
  beq .L1006
  cmp r6, #0
  ldr r2, [r3, #0]
  beq .L1008
  mov r3, r0, asl #2
  mov r0, r2, asl r3
  ldr r5, .L1161+12
  mov r1, #0
.L1010:
  movs  r3, r0, lsr #28
  orr r3, r7, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r6, r1
  mov r0, r0, asl #4
  bne .L1010
  add lr, lr, r6, asl #1
.L1008:
  add ip, ip, #2
  b .L1003
.L1151:
  rsb r4, r0, #8
  cmp r9, r4
  bcs .L533
  ldrh  r2, [ip, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add ip, r8, r3, asl #6
  addne ip, ip, fp
  tst r2, #1024
  bne .L1156
  cmp r0, #3
  bls .L566
  cmp r9, #0
  ldr r2, [ip, #4]
  beq .L1118
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r0, r2, lsr r3
  ldr ip, .L1161+12
  mov r1, #0
.L569:
  ands  r3, r0, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r9, r1
  mov r0, r0, lsr #8
  bne .L569
  b .L1118
.L1108:
  ldr r2, [r3, #0]
  ldr r4, .L1161+12
  mov r0, #0
.L1114:
  ands  r3, r2, #15
  orr r3, ip, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r5, r0
  mov r2, r2, lsr #4
  bne .L1114
  b .L1118
.L874:
  cmp r5, #3
  ldrls r2, [ip, #0]
  bls .L905
  ldr r1, [ip, #0]
  cmp r1, #0
  beq .L895
  ands  r2, r1, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #8
  strneh  r2, [lr, #0]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #16
  strneh  r2, [lr, #2]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #4]  @ movhi
  movs  r2, r1, lsr #24
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #6]  @ movhi
.L895:
  subs  r5, r5, #4
  ldr r2, [ip, #4]
  addne lr, lr, #8
  beq .L1118
.L905:
  mov r1, #0
.L906:
  ands  r3, r2, #255
  mov ip, r3, asl #1
  ldrne r3, .L1161+12
  mov r0, r1, asl #1
  ldrneh  ip, [ip, r3]
  add r1, r1, #1
  strneh  ip, [r0, lr]  @ movhi
  cmp r1, r5
  mov r2, r2, lsr #8
  bcc .L906
  b .L1118
.L991:
  ldr r2, [r3, #0]
  ldr r5, .L1161+12
  mov r0, #0
.L997:
  ands  r3, r2, #15
  orr r3, ip, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r4, r0
  mov r2, r2, lsr #4
  bne .L997
  b .L1118
.L691:
  cmp r4, #3
  ldrls r2, [ip, #0]
  bls .L722
  ldr r1, [ip, #0]
  cmp r1, #0
  beq .L712
  ands  r2, r1, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #8
  strneh  r2, [lr, #0]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #16
  strneh  r2, [lr, #2]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #4]  @ movhi
  movs  r2, r1, lsr #24
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #6]  @ movhi
.L712:
  subs  r4, r4, #4
  ldr r2, [ip, #4]
  addne lr, lr, #8
  beq .L1118
.L722:
  mov r1, #0
.L723:
  ands  r3, r2, #255
  mov ip, r3, asl #1
  ldrne r3, .L1161+12
  mov r0, r1, asl #1
  ldrneh  ip, [ip, r3]
  add r1, r1, #1
  strneh  ip, [r0, lr]  @ movhi
  cmp r4, r1
  mov r2, r2, lsr #8
  bhi .L723
  b .L1118
.L732:
  cmp r0, #3
  bhi .L1157
  subs  r4, r5, #4
  ldr r2, [r6, #0]
  beq .L767
  mov r3, r0, asl #3
  mov r0, r2, lsr r3
  ldr r7, .L1161+12
  mov r1, #0
.L769:
  ands  r3, r0, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r4, r1
  mov r0, r0, lsr #8
  bne .L769
  add r3, lr, r5, asl #1
  sub lr, r3, #8
.L767:
  ldr r1, [r6, #4]
  cmp r1, #0
  beq .L774
  ands  r2, r1, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #8
  strneh  r2, [lr, #0]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #16
  strneh  r2, [lr, #2]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #4]  @ movhi
  movs  r2, r1, lsr #24
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #6]  @ movhi
  b .L774
.L1006:
  cmp r6, #0
  ldr r2, [r3, #0]
  beq .L1008
  mov r3, r0, asl #2
  mov r0, r2, lsr r3
  ldr r5, .L1161+12
  mov r1, #0
.L1016:
  ands  r3, r0, #15
  orr r3, r7, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r6, r1
  mov r0, r0, lsr #4
  bne .L1016
  add lr, lr, r6, asl #1
  b .L1008
.L914:
  ldrh  r1, [ip, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r5, r3, asl #4
  add r3, r8, r2, asl #5
  addne r3, r3, fp
  tst r1, #1024
  bne .L1158
  cmp r4, #0
  ldr r2, [r3, #0]
  beq .L934
  mov r3, r0, asl #2
  mov r0, r2, lsr r3
  ldr r6, .L1161+12
  mov r1, #0
.L942:
  ands  r3, r0, #15
  orr r3, r5, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r4, r1
  mov r0, r0, lsr #4
  bne .L942
.L1133:
  add lr, lr, r4, asl #1
.L934:
  rsb r9, r4, r9
  add ip, ip, #2
  b .L912
.L533:
  ldrh  r2, [ip, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add r5, r8, r3, asl #6
  addne r5, r5, fp
  ands  r2, r2, #1024
  bne .L1159
  cmp r0, #3
  bls .L621
  cmp r4, #0
  ldr r1, [r5, #4]
  beq .L598
  mov r3, r0, asl #3
  sub r3, r3, #32
  ldr r5, .L1161+12
  mov r0, r1, lsr r3
  mov r1, r2
.L624:
  ands  r3, r0, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r4, r1
  mov r0, r0, lsr #8
  bne .L624
.L1120:
  add lr, lr, r4, asl #1
.L598:
  rsb r9, r4, r9
  add ip, ip, #2
  b .L531
.L1155:
  cmp r5, #0
  ldr r2, [r6, #0]
  beq .L736
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r0, r2, asl r3
  ldr r4, .L1161+12
  mov r1, #0
.L738:
  movs  r3, r0, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r5, r1
  mov r0, r0, asl #8
  bne .L738
  add lr, lr, r5, asl #1
.L1160:
  add ip, ip, #2
  b .L729
.L1154:
  cmp r9, #0
  ldr ip, [ip, #0]
  beq .L1118
  mov r3, r0, asl #2
  ldr r4, .L1161+12
  mov r0, ip, asl r3
  mov ip, #0
.L921:
  movs  r3, r0, lsr #28
  orr r3, r2, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r1, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r9, ip
  mov r0, r0, asl #4
  bne .L921
  b .L1118
.L1159:
  cmp r0, #3
  bls .L596
  cmp r4, #0
  ldr r2, [r5, #0]
  beq .L598
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r0, r2, asl r3
  ldr r5, .L1161+12
  mov r1, #0
.L600:
  movs  r3, r0, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r4, r1
  mov r0, r0, asl #8
  bne .L600
  b .L1120
.L1157:
  cmp r5, #0
  ldr r1, [r6, #4]
  beq .L736
  mov r3, r0, asl #3
  sub r3, r3, #32
  ldr r4, .L1161+12
  mov r0, r1, lsr r3
  mov r1, r2
.L762:
  ands  r3, r0, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r5, r1
  mov r0, r0, lsr #8
  bne .L762
  add lr, lr, r5, asl #1
  b .L1160
.L1156:
  cmp r0, #3
  bls .L539
  cmp r9, #0
  ldr r2, [ip, #0]
  beq .L1118
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r0, r2, asl r3
  ldr ip, .L1161+12
  mov r1, #0
.L543:
  movs  r3, r0, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r9, r1
  mov r0, r0, asl #8
  bne .L543
  b .L1118
.L1158:
  cmp r4, #0
  ldr r2, [r3, #0]
  beq .L934
  mov r3, r0, asl #2
  mov r0, r2, asl r3
  ldr r6, .L1161+12
  mov r1, #0
.L936:
  movs  r3, r0, lsr #28
  orr r3, r5, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r4, r1
  mov r0, r0, asl #4
  bne .L936
  b .L1133
.L539:
  mov r3, r0, asl #3
  ldr r1, [ip, #4]
  add r2, r9, r0
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L547
  cmp r9, #0
  ldrne ip, .L1161+12
  movne r0, #0
  beq .L1118
.L562:
  movs  r3, r1, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r9, r0
  mov r1, r1, asl #8
  bne .L562
  b .L1118
.L596:
  subs  r6, r4, #4
  ldr r2, [r5, #4]
  beq .L605
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r0, r2, asl r3
  ldr r7, .L1161+12
  mov r1, #0
.L607:
  movs  r3, r0, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r6, r1
  mov r0, r0, asl #8
  bne .L607
  add r3, lr, r4, asl #1
  sub lr, r3, #8
.L605:
  ldr r1, [r5, #0]
  cmp r1, #0
  beq .L636
  ands  r2, r1, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #8
  strneh  r2, [lr, #6]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #16
  strneh  r2, [lr, #4]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #2]  @ movhi
  movs  r2, r1, lsr #24
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #0]  @ movhi
.L636:
  add lr, lr, #8
  b .L598
.L566:
  add r2, r9, r0
  ldr r3, [ip, #0]
  cmp r2, #4
  mov r1, r0, asl #3
  mov r2, r3, lsr r1
  bhi .L573
  cmp r9, #0
  ldrne ip, .L1161+12
  movne r0, #0
  beq .L1118
.L588:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r9, r0
  mov r2, r2, lsr #8
  bne .L588
  b .L1118
.L621:
  subs  r6, r4, #4
  ldr r2, [r5, #0]
  beq .L629
  mov r3, r0, asl #3
  mov r0, r2, lsr r3
  ldr r7, .L1161+12
  mov r1, #0
.L631:
  ands  r3, r0, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  mov r2, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r6, r1
  mov r0, r0, lsr #8
  bne .L631
  add r3, lr, r4, asl #1
  sub lr, r3, #8
.L629:
  ldr r1, [r5, #4]
  cmp r1, #0
  beq .L636
  ands  r2, r1, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #8
  strneh  r2, [lr, #0]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r3, r1, lsr #16
  strneh  r2, [lr, #2]  @ movhi
  ands  r2, r3, #255
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #4]  @ movhi
  movs  r2, r1, lsr #24
  ldrne r3, .L1161+12
  movne r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  strneh  r2, [lr, #6]  @ movhi
  add lr, lr, #8
  b .L598
.L547:
  rsbs  r4, r0, #4
  beq .L550
  ldr r5, .L1161+12
  mov r0, #0
.L552:
  movs  r3, r1, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r4, r0
  mov r1, r1, asl #8
  bne .L552
  add lr, lr, r4, asl #1
.L550:
  subs  r4, r9, r4
  ldr r2, [ip, #0]
  beq .L1118
  ldr ip, .L1161+12
  mov r0, #0
.L558:
  movs  r3, r2, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r4, r0
  mov r2, r2, asl #8
  bne .L558
  b .L1118
.L573:
  rsbs  r4, r0, #4
  beq .L576
  ldr r5, .L1161+12
  mov r0, #0
.L578:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r4, r0
  mov r2, r2, lsr #8
  bne .L578
  add lr, lr, r4, asl #1
.L576:
  subs  r4, r9, r4
  ldr r2, [ip, #4]
  beq .L1118
  ldr ip, .L1161+12
  mov r0, #0
.L584:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r4, r0
  mov r2, r2, lsr #8
  bne .L584
  b .L1118
  .size render_scanline_text_transparent_normal, .-render_scanline_text_transparent_normal
  .align  2
  .global render_scanline_text_base_color16
  .type render_scanline_text_base_color16, %function
render_scanline_text_base_color16:
  @ args = 0, pretend = 0, frame = 16
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr ip, .L1954
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldrh  r5, [ip, #80]
  add r7, r0, #7
  mov r8, r5, asr r0
  mov r7, r5, asr r7
  add r6, ip, r0, asl #2
  ldrh  r4, [ip, #6]
  ldrh  lr, [r6, #18]
  add ip, ip, r0, asl #1
  add fp, r4, lr
  ldrh  r9, [ip, #8]
  mov sl, fp, asl #23
  rsb r2, r1, r2
  sub sp, sp, #16
  mov sl, sl, lsr #23
  cmp sl, #255
  movls r4, #0
  movhi r4, #1
  ldrh  lr, [r6, #16]
  str r2, [sp, #12]
  mov r6, r9, lsr #14
  ldr r2, .L1954+4
  ands  r4, r4, r6, lsr #1
  and r7, r7, #2
  and r8, r8, #1
  add lr, lr, r1
  orr r8, r8, r7
  mov ip, r9, asl #3
  add r7, r3, r1, asl #1
  ldr r2, [r2, r6, asl #2]
  subne r3, sl, #256
  ldr r1, .L1954+8
  movne r3, r3, lsr #3
  moveq r3, fp, asl #3
  and ip, ip, #63488
  addne r3, r3, r2, lsr #3
  andeq r3, r3, #1984
  add ip, ip, r1
  mov lr, lr, asl #23
  addne r4, ip, r3, asl #6
  addeq r4, ip, r3
  mov r0, r5, lsr #12
  tst r6, #1
  mov lr, lr, lsr #23
  and r0, r0, #2
  mov r5, r5, asl #26
  andeq lr, lr, #255
  orr r0, r0, r5, lsr #31
  moveq r3, lr, lsr #3
  mov r0, r0, asl #9
  mov r8, r8, asl #9
  addeq fp, r4, r3, asl #1
  streq r4, [sp, #0]
  beq .L1171
  cmp lr, #255
  subhi lr, lr, #256
  movhi r3, lr, lsr #3
  movls r3, lr, lsr #3
  addhi r3, r4, r3, asl #1
  addls fp, r4, r3, asl #1
  addls r4, r4, #2048
  addhi fp, r3, #2048
  strhi r4, [sp, #0]
  strls r4, [sp, #0]
.L1171:
  tst r9, #128
  beq .L1172
  mov r2, r9, asl #12
  and r3, sl, #7
  and r1, lr, #255
  mov r3, r3, asl #3
  and r2, r2, #49152
  ldr r4, [sp, #12]
  rsb r9, r1, #256
  add r2, r2, r3
  ldr r1, .L1954+8
  mov r3, r3, asl #1
  rsb r3, r3, #56
  cmp r4, r9
  add r2, r2, r1
  str r3, [sp, #4]
  and lr, lr, #7
  bls .L1925
  cmp lr, #0
  moveq r6, lr
  bne .L1926
.L1412:
  rsb r3, r6, r9
  movs  sl, r3, lsr #3
  beq .L1476
  mov lr, r7
  mov r6, #0
  b .L1478
.L1927:
  ldr r1, [r5, #4]
  add r6, r6, #1
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #4]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  streqh  r0, [lr, #2]  @ movhi
  movs  r3, r1, lsr #24
  ldr r1, [r5, #0]
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #14] @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #14] @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #12] @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  streqh  r0, [lr, #10] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  streqh  r0, [lr, #8]  @ movhi
  cmp sl, r6
  add lr, lr, #16
  beq .L1530
.L1928:
  add fp, fp, #2
.L1478:
  ldrh  r1, [fp, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r5, r2, r3, asl #6
  ldrne r3, [sp, #4]
  addne r5, r5, r3
  tst r1, #1024
  bne .L1927
  ldr r1, [r5, #0]
  add r6, r6, #1
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #0]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #2]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  streqh  r0, [lr, #4]  @ movhi
  movs  r3, r1, lsr #24
  ldr r1, [r5, #4]
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #8]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #10] @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  streqh  r0, [lr, #12] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [lr, #14] @ movhi
  streqh  r0, [lr, #14] @ movhi
  cmp sl, r6
  add lr, lr, #16
  bne .L1928
.L1530:
  add r7, r7, sl, asl #4
.L1476:
  ldr r4, [sp, #12]
  rsb r9, r9, r4
  movs  r4, r9, lsr #3
  ldreq r3, [sp, #0]
  beq .L1534
  ldr r6, [sp, #0]
  mov lr, r7
  mov sl, #0
  b .L1535
.L1930:
  ldr r1, [r5, #4]
  add sl, sl, #1
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #4]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  streqh  r0, [lr, #2]  @ movhi
  movs  r3, r1, lsr #24
  ldr r1, [r5, #0]
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #14] @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #14] @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #12] @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  streqh  r0, [lr, #10] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  streqh  r0, [lr, #8]  @ movhi
  cmp r4, sl
  add lr, lr, #16
  add r6, r6, #2
  beq .L1929
.L1535:
  ldrh  r1, [r6, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r5, r2, r3, asl #6
  ldrne r3, [sp, #4]
  addne r5, r5, r3
  tst r1, #1024
  bne .L1930
  ldr r1, [r5, #0]
  add sl, sl, #1
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #0]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #2]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  streqh  r0, [lr, #4]  @ movhi
  movs  r3, r1, lsr #24
  ldr r1, [r5, #4]
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #8]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #10] @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  streqh  r0, [lr, #12] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [lr, #14] @ movhi
  streqh  r0, [lr, #14] @ movhi
  cmp r4, sl
  add lr, lr, #16
  add r6, r6, #2
  bne .L1535
.L1929:
  ldr r1, [sp, #0]
  add r7, r7, r4, asl #4
  add r3, r1, r4, asl #1
.L1534:
  ands  lr, r9, #7
  beq .L1907
  ldrh  r4, [r3, #0]
  mov r3, r4, asl #22
  mov r3, r3, lsr #22
  tst r4, #2048
  add r2, r2, r3, asl #6
  ldrne r3, [sp, #4]
  addne r2, r2, r3
  tst r4, #1024
  beq .L1591
  cmp lr, #3
  ldrls r2, [r2, #4]
  bhi .L1931
.L1608:
  mov r1, #0
.L1609:
  movs  r3, r2, lsr #24
  orr r3, r3, r8
  add r1, r1, #1
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  cmp lr, r1
  mov r2, r2, asl #8
  add r7, r7, #2
  bhi .L1609
.L1907:
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L1172:
  and r1, lr, #255
  rsb r4, r1, #256
  and r3, sl, #7
  ldr r1, [sp, #12]
  mov r2, r9, asl #12
  mov r3, r3, asl #2
  and r2, r2, #49152
  add r2, r2, r3
  cmp r1, r4
  mov r3, r3, asl #1
  ldr r1, .L1954+8
  rsb r3, r3, #28
  add ip, r2, r1
  str r3, [sp, #8]
  and r1, lr, #7
  bls .L1932
  cmp r1, #0
  moveq r6, r1
  bne .L1933
.L1752:
  rsb r3, r6, r4
  movs  r9, r3, lsr #3
  beq .L1772
  mov r3, r0, asl #16
  mov r5, r3, lsr #16
  mov lr, r7
  mov sl, #0
  b .L1774
.L1934:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L1805
  ands  r3, r2, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #14] @ movhi
  mov r3, r2, lsr #4
  streqh  r0, [lr, #14] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  mov r3, r2, lsr #8
  streqh  r0, [lr, #12] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  mov r3, r2, lsr #12
  streqh  r0, [lr, #10] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  mov r3, r2, lsr #16
  streqh  r0, [lr, #8]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  mov r3, r2, lsr #20
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  mov r3, r2, lsr #24
  streqh  r0, [lr, #4]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  streqh  r0, [lr, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
.L1804:
  add sl, sl, #1
  cmp r9, sl
  add lr, lr, #16
  beq .L1830
.L1935:
  add fp, fp, #2
.L1774:
  ldrh  r1, [fp, #0]
  mov r2, r1, asl #22
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r3, r1, lsr #12
  mov r6, r3, asl #4
  add r3, ip, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst r1, #1024
  bne .L1934
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L1805
  ands  r3, r2, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  mov r3, r2, lsr #4
  streqh  r0, [lr, #0]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  mov r3, r2, lsr #8
  streqh  r0, [lr, #2]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  mov r3, r2, lsr #12
  streqh  r0, [lr, #4]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  mov r3, r2, lsr #16
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  mov r3, r2, lsr #20
  streqh  r0, [lr, #8]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  mov r3, r2, lsr #24
  streqh  r0, [lr, #10] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  streqh  r0, [lr, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r6, r3
  orrne r3, r3, r8
  add sl, sl, #1
  strneh  r3, [lr, #14] @ movhi
  streqh  r0, [lr, #14] @ movhi
  cmp r9, sl
  add lr, lr, #16
  bne .L1935
.L1830:
  add r7, r7, r9, asl #4
.L1772:
  ldr r3, [sp, #12]
  rsb fp, r4, r3
  movs  r4, fp, lsr #3
  ldreq r2, [sp, #0]
  beq .L1834
  mov r3, r0, asl #16
  ldr sl, [sp, #0]
  mov r5, r3, lsr #16
  mov lr, r7
  mov r9, #0
  b .L1835
.L1937:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L1866
  ands  r3, r2, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #14] @ movhi
  mov r3, r2, lsr #4
  streqh  r0, [lr, #14] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  mov r3, r2, lsr #8
  streqh  r0, [lr, #12] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  mov r3, r2, lsr #12
  streqh  r0, [lr, #10] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  mov r3, r2, lsr #16
  streqh  r0, [lr, #8]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  mov r3, r2, lsr #20
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  mov r3, r2, lsr #24
  streqh  r0, [lr, #4]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  streqh  r0, [lr, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
.L1865:
  add r9, r9, #1
  cmp r4, r9
  add lr, lr, #16
  add sl, sl, #2
  beq .L1936
.L1835:
  ldrh  r1, [sl, #0]
  mov r2, r1, asl #22
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r3, r1, lsr #12
  mov r6, r3, asl #4
  add r3, ip, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst r1, #1024
  bne .L1937
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L1866
  ands  r3, r2, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  mov r3, r2, lsr #4
  streqh  r0, [lr, #0]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  mov r3, r2, lsr #8
  streqh  r0, [lr, #2]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  mov r3, r2, lsr #12
  streqh  r0, [lr, #4]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  mov r3, r2, lsr #16
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  mov r3, r2, lsr #20
  streqh  r0, [lr, #8]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  mov r3, r2, lsr #24
  streqh  r0, [lr, #10] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  streqh  r0, [lr, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r6, r3
  orrne r3, r3, r8
  add r9, r9, #1
  strneh  r3, [lr, #14] @ movhi
  streqh  r0, [lr, #14] @ movhi
  cmp r4, r9
  add lr, lr, #16
  add sl, sl, #2
  bne .L1835
.L1936:
  ldr r3, [sp, #0]
  add r7, r7, r4, asl #4
  add r2, r3, r4, asl #1
.L1834:
  ands  lr, fp, #7
  beq .L1907
  ldrh  r4, [r2, #0]
  tst r4, #2048
  mov r3, r4, asl #22
  ldrne r1, [sp, #8]
  mov r3, r3, lsr #22
  add r3, ip, r3, asl #5
  addne r3, r3, r1
  mov r2, r4, lsr #12
  tst r4, #1024
  mov ip, r2, asl #4
  moveq r1, #0
  ldreq r2, [r3, #0]
  beq .L1902
  ldr r2, [r3, #0]
  mov r1, #0
.L1897:
  movs  r3, r2, lsr #28
  orr r3, ip, r3
  orr r3, r3, r8
  add r1, r1, #1
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  cmp lr, r1
  mov r2, r2, asl #4
  add r7, r7, #2
  bne .L1897
  b .L1907
.L1932:
  cmp r1, #0
  bne .L1938
.L1637:
  ldr r1, [sp, #12]
  movs  r4, r1, lsr #3
  beq .L1676
  mov r3, r0, asl #16
  mov r5, r3, lsr #16
  mov lr, r7
  mov sl, fp
  mov r9, #0
  b .L1678
.L1940:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L1709
  ands  r3, r2, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #14] @ movhi
  mov r3, r2, lsr #4
  streqh  r0, [lr, #14] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  mov r3, r2, lsr #8
  streqh  r0, [lr, #12] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  mov r3, r2, lsr #12
  streqh  r0, [lr, #10] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  mov r3, r2, lsr #16
  streqh  r0, [lr, #8]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  mov r3, r2, lsr #20
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  mov r3, r2, lsr #24
  streqh  r0, [lr, #4]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  streqh  r0, [lr, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
.L1708:
  add r9, r9, #1
  cmp r4, r9
  add lr, lr, #16
  add sl, sl, #2
  beq .L1939
.L1678:
  ldrh  r1, [sl, #0]
  mov r2, r1, asl #22
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r3, r1, lsr #12
  mov r6, r3, asl #4
  add r3, ip, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst r1, #1024
  bne .L1940
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L1709
  ands  r3, r2, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  mov r3, r2, lsr #4
  streqh  r0, [lr, #0]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  mov r3, r2, lsr #8
  streqh  r0, [lr, #2]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  mov r3, r2, lsr #12
  streqh  r0, [lr, #4]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  mov r3, r2, lsr #16
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  mov r3, r2, lsr #20
  streqh  r0, [lr, #8]  @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  mov r3, r2, lsr #24
  streqh  r0, [lr, #10] @ movhi
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  streqh  r0, [lr, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r6, r3
  orrne r3, r3, r8
  add r9, r9, #1
  strneh  r3, [lr, #14] @ movhi
  streqh  r0, [lr, #14] @ movhi
  cmp r4, r9
  add lr, lr, #16
  add sl, sl, #2
  bne .L1678
.L1939:
  add r7, r7, r4, asl #4
  add fp, fp, r4, asl #1
.L1676:
  ldr r3, [sp, #12]
  ands  lr, r3, #7
  beq .L1907
  ldrh  r1, [fp, #0]
  tst r1, #2048
  mov r3, r1, asl #22
  ldrne r4, [sp, #8]
  mov r3, r3, lsr #22
  add r3, ip, r3, asl #5
  mov r2, r1, lsr #12
  addne r3, r3, r4
  tst r1, #1024
  mov ip, r2, asl #4
  moveq r1, #0
  ldreq r2, [r3, #0]
  beq .L1745
  ldr r2, [r3, #0]
  mov r1, #0
.L1740:
  movs  r3, r2, lsr #28
  orr r3, ip, r3
  orr r3, r3, r8
  add r1, r1, #1
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  cmp lr, r1
  mov r2, r2, asl #4
  add r7, r7, #2
  bne .L1740
  b .L1907
.L1925:
  cmp lr, #0
  bne .L1941
.L1176:
  ldr r3, [sp, #12]
  movs  r9, r3, lsr #3
  beq .L1308
  mov lr, r7
  mov r6, fp
  mov sl, #0
  b .L1310
.L1943:
  ldr r1, [r5, #4]
  add sl, sl, #1
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #4]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  streqh  r0, [lr, #2]  @ movhi
  movs  r3, r1, lsr #24
  ldr r1, [r5, #0]
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #14] @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #14] @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #12] @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  streqh  r0, [lr, #10] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  streqh  r0, [lr, #8]  @ movhi
  cmp r9, sl
  add lr, lr, #16
  add r6, r6, #2
  beq .L1942
.L1310:
  ldrh  r1, [r6, #0]
  tst r1, #2048
  mov r3, r1, asl #22
  ldrne r4, [sp, #4]
  mov r3, r3, lsr #22
  add r5, r2, r3, asl #6
  addne r5, r5, r4
  tst r1, #1024
  bne .L1943
  ldr r1, [r5, #0]
  add sl, sl, #1
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #0]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #0]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #2]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #2]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #4]  @ movhi
  streqh  r0, [lr, #4]  @ movhi
  movs  r3, r1, lsr #24
  ldr r1, [r5, #4]
  orrne r3, r3, r8
  strneh  r3, [lr, #6]  @ movhi
  streqh  r0, [lr, #6]  @ movhi
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #8]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [lr, #8]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #10] @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [lr, #10] @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [lr, #12] @ movhi
  streqh  r0, [lr, #12] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [lr, #14] @ movhi
  streqh  r0, [lr, #14] @ movhi
  cmp r9, sl
  add lr, lr, #16
  add r6, r6, #2
  bne .L1310
.L1942:
  add r7, r7, r9, asl #4
  add fp, fp, r9, asl #1
.L1308:
  ldr r1, [sp, #12]
  ands  lr, r1, #7
  beq .L1907
  ldrh  r1, [fp, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r2, r2, r3, asl #6
  ldrne r3, [sp, #4]
  addne r2, r2, r3
  tst r1, #1024
  beq .L1366
  cmp lr, #3
  ldrls r2, [r2, #4]
  bhi .L1944
.L1383:
  mov r1, #0
.L1384:
  movs  r3, r2, lsr #24
  orr r3, r3, r8
  add r1, r1, #1
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  cmp lr, r1
  mov r2, r2, asl #8
  add r7, r7, #2
  bhi .L1384
  b .L1907
.L1805:
  strh  r5, [lr, #0]  @ movhi
  strh  r5, [lr, #2]  @ movhi
  strh  r5, [lr, #4]  @ movhi
  strh  r5, [lr, #6]  @ movhi
  strh  r5, [lr, #8]  @ movhi
  strh  r5, [lr, #10] @ movhi
  strh  r5, [lr, #12] @ movhi
  strh  r5, [lr, #14] @ movhi
  b .L1804
.L1866:
  strh  r5, [lr, #0]  @ movhi
  strh  r5, [lr, #2]  @ movhi
  strh  r5, [lr, #4]  @ movhi
  strh  r5, [lr, #6]  @ movhi
  strh  r5, [lr, #8]  @ movhi
  strh  r5, [lr, #10] @ movhi
  strh  r5, [lr, #12] @ movhi
  strh  r5, [lr, #14] @ movhi
  b .L1865
.L1902:
  ands  r3, r2, #15
  orr r3, ip, r3
  orr r3, r3, r8
  add r1, r1, #1
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  cmp lr, r1
  mov r2, r2, lsr #4
  add r7, r7, #2
  bne .L1902
  b .L1907
.L1938:
  ldr r2, [sp, #12]
  rsb r5, r1, #8
  cmp r2, r5
  bcs .L1639
  ldrh  lr, [fp, #0]
  mov r3, lr, asl #22
  mov r3, r3, lsr #22
  tst lr, #2048
  add ip, ip, r3, asl #5
  ldrne r3, [sp, #8]
  mov r2, lr, lsr #12
  addne ip, ip, r3
  tst lr, #1024
  mov r2, r2, asl #4
  bne .L1945
  ldr r4, [sp, #12]
  ldr ip, [ip, #0]
  cmp r4, #0
  beq .L1907
  mov r3, r1, asl #2
  mov r1, ip, lsr r3
  mov ip, #0
.L1652:
  ands  r3, r1, #15
  orr r3, r2, r3
  orr r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  ldr r3, [sp, #12]
  add ip, ip, #1
  streqh  r0, [r7, #0]  @ movhi
  cmp r3, ip
  mov r1, r1, lsr #4
  add r7, r7, #2
  bne .L1652
  b .L1907
.L1955:
  .align  2
.L1954:
  .word io_registers
  .word map_widths
  .word vram
.L1933:
  ldrh  r5, [fp, #0]
  rsb r6, r1, #8
  mov r2, r5, asl #22
  mov r2, r2, lsr #22
  tst r5, #2048
  mov r3, r5, lsr #12
  mov sl, r3, asl #4
  add r3, ip, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst r5, #1024
  beq .L1755
  cmp r6, #0
  ldr r2, [r3, #0]
  beq .L1757
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  mov lr, #0
  mov r2, r7
.L1759:
  movs  r3, r1, lsr #28
  orr r3, sl, r3
  orr r3, r3, r8
  add lr, lr, #1
  strneh  r3, [r2, #0]  @ movhi
  streqh  r0, [r2, #0]  @ movhi
  cmp r6, lr
  mov r1, r1, asl #4
  add r2, r2, #2
  bne .L1759
  add r7, r7, r6, asl #1
.L1757:
  add fp, fp, #2
  b .L1752
.L1926:
  ldrh  r1, [fp, #0]
  rsb r6, lr, #8
  tst r1, #2048
  mov r3, r1, asl #22
  ldrne r4, [sp, #4]
  mov r3, r3, lsr #22
  add sl, r2, r3, asl #6
  addne sl, sl, r4
  ands  r5, r1, #1024
  beq .L1415
  cmp lr, #3
  bhi .L1946
  subs  ip, r6, #4
  ldr r1, [sl, #4]
  beq .L1427
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov lr, r7
  mov r5, #0
.L1429:
  movs  r3, r1, lsr #24
  orr r3, r3, r8
  add r5, r5, #1
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  cmp ip, r5
  mov r1, r1, asl #8
  add lr, lr, #2
  bne .L1429
  add r3, r7, r6, asl #1
  sub r7, r3, #8
.L1427:
  ldr r1, [sl, #0]
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #6]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [r7, #6]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #4]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [r7, #4]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #2]  @ movhi
  streqh  r0, [r7, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
.L1475:
  add r7, r7, #8
  mov r6, ip
.L1419:
  add fp, fp, #2
  b .L1412
.L1941:
  ldr r3, [sp, #12]
  rsb r4, lr, #8
  cmp r3, r4
  bcs .L1178
  ldrh  r1, [fp, #0]
  tst r1, #2048
  mov r3, r1, asl #22
  ldrne r4, [sp, #4]
  mov r3, r3, lsr #22
  add ip, r2, r3, asl #6
  addne ip, ip, r4
  tst r1, #1024
  bne .L1947
  cmp lr, #3
  bls .L1215
  ldr r4, [sp, #12]
  ldr r2, [ip, #4]
  cmp r4, #0
  beq .L1907
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L1218:
  ands  r3, r1, #255
  orr r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  ldr r3, [sp, #12]
  add r2, r2, #1
  streqh  r0, [r7, #0]  @ movhi
  cmp r3, r2
  mov r1, r1, lsr #8
  add r7, r7, #2
  bne .L1218
  b .L1907
.L1709:
  strh  r5, [lr, #0]  @ movhi
  strh  r5, [lr, #2]  @ movhi
  strh  r5, [lr, #4]  @ movhi
  strh  r5, [lr, #6]  @ movhi
  strh  r5, [lr, #8]  @ movhi
  strh  r5, [lr, #10] @ movhi
  strh  r5, [lr, #12] @ movhi
  strh  r5, [lr, #14] @ movhi
  b .L1708
.L1745:
  ands  r3, r2, #15
  orr r3, ip, r3
  orr r3, r3, r8
  add r1, r1, #1
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  cmp lr, r1
  mov r2, r2, lsr #4
  add r7, r7, #2
  bne .L1745
  b .L1907
.L1591:
  cmp lr, #3
  ldrls r2, [r2, #0]
  bhi .L1948
.L1629:
  mov r1, #0
.L1630:
  ands  r3, r2, #255
  orr r3, r3, r8
  add r1, r1, #1
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  cmp lr, r1
  mov r2, r2, lsr #8
  add r7, r7, #2
  bhi .L1630
  b .L1907
.L1366:
  cmp lr, #3
  ldrls r2, [r2, #0]
  bhi .L1949
.L1404:
  mov r1, #0
.L1405:
  ands  r3, r2, #255
  orr r3, r3, r8
  add r1, r1, #1
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  cmp lr, r1
  mov r2, r2, lsr #8
  add r7, r7, #2
  bhi .L1405
  b .L1907
.L1755:
  cmp r6, #0
  ldr r2, [r3, #0]
  beq .L1757
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  mov lr, #0
  mov r2, r7
.L1766:
  ands  r3, r1, #15
  orr r3, sl, r3
  orr r3, r3, r8
  add lr, lr, #1
  strneh  r3, [r2, #0]  @ movhi
  streqh  r0, [r2, #0]  @ movhi
  cmp r6, lr
  mov r1, r1, lsr #4
  add r2, r2, #2
  bne .L1766
  add r7, r7, r6, asl #1
  b .L1757
.L1639:
  ldrh  lr, [fp, #0]
  mov r2, lr, asl #22
  mov r2, r2, lsr #22
  tst lr, #2048
  mov r3, lr, lsr #12
  mov r4, r3, asl #4
  add r3, ip, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst lr, #1024
  bne .L1950
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L1661
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  mov lr, #0
  mov r2, r7
.L1670:
  ands  r3, r1, #15
  orr r3, r4, r3
  orr r3, r3, r8
  add lr, lr, #1
  strneh  r3, [r2, #0]  @ movhi
  streqh  r0, [r2, #0]  @ movhi
  cmp r5, lr
  mov r1, r1, lsr #4
  add r2, r2, #2
  bne .L1670
.L1922:
  add r7, r7, r5, asl #1
.L1661:
  ldr r3, [sp, #12]
  add fp, fp, #2
  rsb r3, r5, r3
  str r3, [sp, #12]
  b .L1637
.L1415:
  cmp lr, #3
  bhi .L1951
  subs  ip, r6, #4
  ldr r1, [sl, #0]
  beq .L1456
  mov r3, lr, asl #3
  mov r1, r1, lsr r3
  mov lr, r7
  mov r5, #0
.L1458:
  ands  r3, r1, #255
  orr r3, r3, r8
  add r5, r5, #1
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  cmp ip, r5
  mov r1, r1, lsr #8
  add lr, lr, #2
  bne .L1458
  add r3, r7, r6, asl #1
  sub r7, r3, #8
.L1456:
  ldr r1, [sl, #4]
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [r7, #0]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #2]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [r7, #2]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #4]  @ movhi
  streqh  r0, [r7, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [r7, #6]  @ movhi
  streqh  r0, [r7, #6]  @ movhi
  b .L1475
.L1178:
  ldrh  r1, [fp, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add ip, r2, r3, asl #6
  ldrne r3, [sp, #4]
  addne ip, ip, r3
  ands  r5, r1, #1024
  bne .L1952
  cmp lr, #3
  bls .L1279
  cmp r4, #0
  ldr r1, [ip, #4]
  beq .L1251
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
  mov ip, r5
  mov lr, r7
.L1282:
  ands  r3, r1, #255
  orr r3, r3, r8
  add ip, ip, #1
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  cmp r4, ip
  mov r1, r1, lsr #8
  add lr, lr, #2
  bne .L1282
.L1909:
  add r7, r7, r4, asl #1
.L1251:
  ldr r1, [sp, #12]
  add fp, fp, #2
  rsb r1, r4, r1
  str r1, [sp, #12]
  b .L1176
.L1948:
  ldmia r2, {r1, r2}  @ phole ldm
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [r7, #0]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #2]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [r7, #2]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #4]  @ movhi
  streqh  r0, [r7, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [r7, #6]  @ movhi
  streqh  r0, [r7, #6]  @ movhi
  subs  lr, lr, #4
  addne r7, r7, #8
  bne .L1629
  b .L1907
.L1931:
  ldr r1, [r2, #4]
  ldr r2, [r2, #0]
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #6]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [r7, #6]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #4]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [r7, #4]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #2]  @ movhi
  streqh  r0, [r7, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  subs  lr, lr, #4
  addne r7, r7, #8
  bne .L1608
  b .L1907
.L1944:
  ldr r1, [r2, #4]
  ldr r2, [r2, #0]
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #6]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [r7, #6]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #4]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [r7, #4]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #2]  @ movhi
  streqh  r0, [r7, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  subs  lr, lr, #4
  addne r7, r7, #8
  bne .L1383
  b .L1907
.L1949:
  ldmia r2, {r1, r2}  @ phole ldm
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [r7, #0]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #2]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [r7, #2]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #4]  @ movhi
  streqh  r0, [r7, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [r7, #6]  @ movhi
  streqh  r0, [r7, #6]  @ movhi
  subs  lr, lr, #4
  addne r7, r7, #8
  bne .L1404
  b .L1907
.L1946:
  cmp r6, #0
  ldr r1, [sl, #0]
  beq .L1419
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov lr, r7
  mov r5, #0
.L1421:
  movs  r3, r1, lsr #24
  orr r3, r3, r8
  add r5, r5, #1
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  cmp r6, r5
  mov r1, r1, asl #8
  add lr, lr, #2
  bne .L1421
  add r7, r7, r6, asl #1
.L1953:
  add fp, fp, #2
  b .L1412
.L1945:
  ldr r4, [sp, #12]
  ldr ip, [ip, #0]
  cmp r4, #0
  beq .L1907
  mov r3, r1, asl #2
  mov r1, ip, asl r3
  mov ip, #0
.L1646:
  movs  r3, r1, lsr #28
  orr r3, r2, r3
  orr r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  ldr r3, [sp, #12]
  add ip, ip, #1
  streqh  r0, [r7, #0]  @ movhi
  cmp r3, ip
  mov r1, r1, asl #4
  add r7, r7, #2
  bne .L1646
  b .L1907
.L1952:
  cmp lr, #3
  bls .L1249
  cmp r4, #0
  ldr r1, [ip, #0]
  beq .L1251
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov lr, r7
  mov r5, #0
.L1253:
  movs  r3, r1, lsr #24
  orr r3, r3, r8
  add r5, r5, #1
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  cmp r4, r5
  mov r1, r1, asl #8
  add lr, lr, #2
  bne .L1253
  b .L1909
.L1950:
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L1661
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  mov lr, #0
  mov r2, r7
.L1663:
  movs  r3, r1, lsr #28
  orr r3, r4, r3
  orr r3, r3, r8
  add lr, lr, #1
  strneh  r3, [r2, #0]  @ movhi
  streqh  r0, [r2, #0]  @ movhi
  cmp r5, lr
  mov r1, r1, asl #4
  add r2, r2, #2
  bne .L1663
  b .L1922
.L1947:
  cmp lr, #3
  bls .L1184
  ldr r1, [sp, #12]
  ldr r2, [ip, #0]
  cmp r1, #0
  beq .L1907
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r2, asl r3
  mov r2, #0
.L1188:
  movs  r3, r1, lsr #24
  orr r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  ldr r3, [sp, #12]
  add r2, r2, #1
  streqh  r0, [r7, #0]  @ movhi
  cmp r3, r2
  mov r1, r1, asl #8
  add r7, r7, #2
  bne .L1188
  b .L1907
.L1951:
  cmp r6, #0
  ldr r1, [sl, #4]
  beq .L1419
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
  mov lr, r7
.L1450:
  ands  r3, r1, #255
  orr r3, r3, r8
  add r5, r5, #1
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  cmp r6, r5
  mov r1, r1, lsr #8
  add lr, lr, #2
  bne .L1450
  add r7, r7, r6, asl #1
  b .L1953
.L1184:
  ldr r4, [sp, #12]
  mov r3, lr, asl #3
  ldr r1, [ip, #4]
  add r2, r4, lr
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L1193
  cmp r4, #0
  movne r2, #0
  beq .L1907
.L1210:
  movs  r3, r1, lsr #24
  orr r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  ldr r3, [sp, #12]
  add r2, r2, #1
  streqh  r0, [r7, #0]  @ movhi
  cmp r3, r2
  mov r1, r1, asl #8
  add r7, r7, #2
  bne .L1210
  b .L1907
.L1249:
  subs  r6, r4, #4
  ldr r1, [ip, #4]
  beq .L1259
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov lr, r7
  mov r5, #0
.L1261:
  movs  r3, r1, lsr #24
  orr r3, r3, r8
  add r5, r5, #1
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  cmp r6, r5
  mov r1, r1, asl #8
  add lr, lr, #2
  bne .L1261
  add r3, r7, r4, asl #1
  sub r7, r3, #8
.L1259:
  ldr r1, [ip, #0]
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #6]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [r7, #6]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #4]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [r7, #4]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #2]  @ movhi
  streqh  r0, [r7, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
.L1307:
  add r7, r7, #8
  b .L1251
.L1215:
  ldr r4, [sp, #12]
  ldr r3, [ip, #0]
  add r2, r4, lr
  cmp r2, #4
  mov r1, lr, asl #3
  mov r2, r3, lsr r1
  bhi .L1223
  cmp r4, #0
  movne r1, #0
  beq .L1907
.L1240:
  ands  r3, r2, #255
  orr r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  ldr r3, [sp, #12]
  add r1, r1, #1
  streqh  r0, [r7, #0]  @ movhi
  cmp r3, r1
  mov r2, r2, lsr #8
  add r7, r7, #2
  bne .L1240
  b .L1907
.L1279:
  subs  r6, r4, #4
  ldr r1, [ip, #0]
  beq .L1288
  mov r3, lr, asl #3
  mov r1, r1, lsr r3
  mov lr, r7
  mov r5, #0
.L1290:
  ands  r3, r1, #255
  orr r3, r3, r8
  add r5, r5, #1
  strneh  r3, [lr, #0]  @ movhi
  streqh  r0, [lr, #0]  @ movhi
  cmp r6, r5
  mov r1, r1, lsr #8
  add lr, lr, #2
  bne .L1290
  add r3, r7, r4, asl #1
  sub r7, r3, #8
.L1288:
  ldr r1, [ip, #4]
  ands  r3, r1, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #0]  @ movhi
  mov r3, r1, lsr #8
  streqh  r0, [r7, #0]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #2]  @ movhi
  mov r3, r1, lsr #16
  streqh  r0, [r7, #2]  @ movhi
  ands  r3, r3, #255
  orrne r3, r3, r8
  strneh  r3, [r7, #4]  @ movhi
  streqh  r0, [r7, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, r8
  strneh  r3, [r7, #6]  @ movhi
  bne .L1307
  strh  r0, [r7, #6]  @ movhi
  add r7, r7, #8
  b .L1251
.L1193:
  rsbs  r4, lr, #4
  beq .L1196
  mov r2, r7
  mov lr, #0
.L1198:
  movs  r3, r1, lsr #24
  orr r3, r3, r8
  add lr, lr, #1
  strneh  r3, [r2, #0]  @ movhi
  streqh  r0, [r2, #0]  @ movhi
  cmp r4, lr
  mov r1, r1, asl #8
  add r2, r2, #2
  bne .L1198
  add r7, r7, r4, asl #1
.L1196:
  ldr r1, [sp, #12]
  ldr r2, [ip, #0]
  subs  lr, r1, r4
  beq .L1907
  mov r1, #0
.L1205:
  movs  r3, r2, lsr #24
  orr r3, r3, r8
  add r1, r1, #1
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  cmp lr, r1
  mov r2, r2, asl #8
  add r7, r7, #2
  bne .L1205
  b .L1907
.L1223:
  rsbs  r4, lr, #4
  beq .L1226
  mov r1, r7
  mov lr, #0
.L1228:
  ands  r3, r2, #255
  orr r3, r3, r8
  add lr, lr, #1
  strneh  r3, [r1, #0]  @ movhi
  streqh  r0, [r1, #0]  @ movhi
  cmp r4, lr
  mov r2, r2, lsr #8
  add r1, r1, #2
  bne .L1228
  add r7, r7, r4, asl #1
.L1226:
  ldr r1, [sp, #12]
  ldr r2, [ip, #4]
  subs  lr, r1, r4
  beq .L1907
  mov r1, #0
.L1235:
  ands  r3, r2, #255
  orr r3, r3, r8
  add r1, r1, #1
  strneh  r3, [r7, #0]  @ movhi
  streqh  r0, [r7, #0]  @ movhi
  cmp lr, r1
  mov r2, r2, lsr #8
  add r7, r7, #2
  bne .L1235
  b .L1907
  .size render_scanline_text_base_color16, .-render_scanline_text_base_color16
  .align  2
  .global render_scanline_text_transparent_color16
  .type render_scanline_text_transparent_color16, %function
render_scanline_text_transparent_color16:
  @ args = 0, pretend = 0, frame = 8
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr ip, .L2599
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldrh  lr, [ip, #80]
  add r6, r0, #7
  mov r6, lr, asr r6
  mov lr, lr, asr r0
  add r7, ip, r0, asl #2
  ldrh  r5, [ip, #6]
  ldrh  r4, [r7, #18]
  add ip, ip, r0, asl #1
  add sl, r5, r4
  ldrh  r8, [ip, #8]
  mov r5, sl, asl #23
  sub sp, sp, #8
  mov r5, r5, lsr #23
  rsb r2, r1, r2
  ldrh  r4, [r7, #16]
  cmp r5, #255
  movls ip, #0
  movhi ip, #1
  mov r7, r8, lsr #14
  str r2, [sp, #4]
  ldr r2, .L2599+4
  ands  ip, ip, r7, lsr #1
  add fp, r3, r1, asl #1
  ldr r2, [r2, r7, asl #2]
  subne r3, r5, #256
  mov r0, r8, asl #3
  ldr r9, .L2599+8
  movne r3, r3, lsr #3
  moveq r3, sl, asl #3
  add r4, r4, r1
  and r0, r0, #63488
  add r0, r0, r9
  addne r3, r3, r2, lsr #3
  andeq r3, r3, #1984
  mov r4, r4, asl #23
  addne r0, r0, r3, asl #6
  addeq r0, r0, r3
  mov r4, r4, lsr #23
  tst r7, #1
  and lr, lr, #1
  and r6, r6, #2
  andeq r4, r4, #255
  orr lr, lr, r6
  moveq r3, r4, lsr #3
  mov lr, lr, asl #9
  addeq r7, r0, r3, asl #1
  streq r0, [sp, #0]
  beq .L1964
  cmp r4, #255
  subhi r4, r4, #256
  movhi r3, r4, lsr #3
  movls r3, r4, lsr #3
  addhi r3, r0, r3, asl #1
  addls r7, r0, r3, asl #1
  addls r0, r0, #2048
  addhi r7, r3, #2048
  strhi r0, [sp, #0]
  strls r0, [sp, #0]
.L1964:
  tst r8, #128
  beq .L1965
  and r1, r4, #255
  rsb r0, r1, #256
  and r3, r5, #7
  mov r2, r8, asl #12
  ldr r1, [sp, #4]
  mov r3, r3, asl #3
  and r2, r2, #49152
  add r2, r2, r3
  cmp r1, r0
  mov r3, r3, asl #1
  add r2, r2, r9
  rsb ip, r3, #56
  and r4, r4, #7
  bls .L2574
  cmp r4, #0
  moveq r8, r4
  bne .L2575
.L2167:
  rsb r3, r8, r0
  movs  sl, r3, lsr #3
  beq .L2221
  mov r6, fp
  mov r8, #0
  b .L2223
.L2576:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L2228
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [r6, #0]  @ movhi
.L2228:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L2237
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #14] @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #12] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #10] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [r6, #8]  @ movhi
.L2237:
  add r8, r8, #1
  cmp sl, r8
  add r6, r6, #16
  beq .L2263
.L2577:
  add r7, r7, #2
.L2223:
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r4, r2, r3, asl #6
  addne r4, r4, ip
  tst r1, #1024
  bne .L2576
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L2246
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #0]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #2]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [r6, #6]  @ movhi
.L2246:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L2237
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #8]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #10] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #12] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  add r8, r8, #1
  strneh  r3, [r6, #14] @ movhi
  cmp sl, r8
  add r6, r6, #16
  bne .L2577
.L2263:
  add fp, fp, sl, asl #4
.L2221:
  ldr r3, [sp, #4]
  rsb sl, r0, r3
  movs  r0, sl, lsr #3
  ldreq r0, [sp, #0]
  beq .L2267
  ldr r7, [sp, #0]
  mov r6, fp
  mov r8, #0
  b .L2268
.L2579:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L2273
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [r6, #0]  @ movhi
.L2273:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L2282
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #14] @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #12] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #10] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [r6, #8]  @ movhi
.L2282:
  add r8, r8, #1
  cmp r0, r8
  add r6, r6, #16
  add r7, r7, #2
  beq .L2578
.L2268:
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r4, r2, r3, asl #6
  addne r4, r4, ip
  tst r1, #1024
  bne .L2579
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L2291
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #0]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #2]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [r6, #6]  @ movhi
.L2291:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L2282
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #8]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #10] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r6, #12] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  add r8, r8, #1
  strneh  r3, [r6, #14] @ movhi
  cmp r0, r8
  add r6, r6, #16
  add r7, r7, #2
  bne .L2268
.L2578:
  ldr r1, [sp, #0]
  add fp, fp, r0, asl #4
  add r0, r1, r0, asl #1
.L2267:
  ands  r4, sl, #7
  beq .L2556
  ldrh  r0, [r0, #0]
  mov r3, r0, asl #22
  mov r3, r3, lsr #22
  tst r0, #2048
  add r2, r2, r3, asl #6
  addne r2, r2, ip
  tst r0, #1024
  beq .L2312
  cmp r4, #3
  ldrls r0, [r2, #4]
  bls .L2326
  ldr r1, [r2, #4]
  cmp r1, #0
  beq .L2316
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [fp, #0]  @ movhi
.L2316:
  subs  r4, r4, #4
  ldr r0, [r2, #0]
  addne fp, fp, #8
  beq .L2556
.L2326:
  mov r1, #0
.L2327:
  movs  r3, r0, lsr #24
  mov r2, r1, asl #1
  orr r3, r3, lr
  add r1, r1, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp r1, r4
  mov r0, r0, asl #8
  bcc .L2327
.L2556:
  add sp, sp, #8
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L1965:
  and r1, r4, #255
  ldr ip, [sp, #4]
  and r3, r5, #7
  mov r2, r8, asl #12
  mov r3, r3, asl #2
  rsb r0, r1, #256
  and r2, r2, #49152
  add r2, r2, r3
  cmp ip, r0
  mov r3, r3, asl #1
  add sl, r2, r9
  rsb ip, r3, #28
  and r1, r4, #7
  bls .L2580
  cmp r1, #0
  moveq r8, r1
  bne .L2581
.L2441:
  rsb r3, r8, r0
  movs  r9, r3, lsr #3
  beq .L2459
  mov r4, fp
  mov r8, #0
  b .L2461
.L2582:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L2466
  ands  r3, r2, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #14] @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #12] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #10] @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #8]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #6]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #4]  @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #0]  @ movhi
.L2466:
  add r8, r8, #1
  cmp r9, r8
  add r4, r4, #16
  beq .L2499
.L2583:
  add r7, r7, #2
.L2461:
  ldrh  r1, [r7, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r6, r3, asl #4
  add r3, sl, r2, asl #5
  addne r3, r3, ip
  tst r1, #1024
  bne .L2582
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L2466
  ands  r3, r2, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r6, r3
  orrne r3, r3, lr
  add r8, r8, #1
  strneh  r3, [r4, #14] @ movhi
  cmp r9, r8
  add r4, r4, #16
  bne .L2583
.L2499:
  add fp, fp, r9, asl #4
.L2459:
  ldr r1, [sp, #4]
  rsb r9, r0, r1
  movs  r0, r9, lsr #3
  ldreq r0, [sp, #0]
  beq .L2503
  ldr r7, [sp, #0]
  mov r4, fp
  mov r8, #0
  b .L2504
.L2585:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L2509
  ands  r3, r2, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #14] @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #12] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #10] @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #8]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #6]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #4]  @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #0]  @ movhi
.L2509:
  add r8, r8, #1
  cmp r0, r8
  add r4, r4, #16
  add r7, r7, #2
  beq .L2584
.L2504:
  ldrh  r1, [r7, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r6, r3, asl #4
  add r3, sl, r2, asl #5
  addne r3, r3, ip
  tst r1, #1024
  bne .L2585
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L2509
  ands  r3, r2, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r6, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r6, r3
  orrne r3, r3, lr
  add r8, r8, #1
  strneh  r3, [r4, #14] @ movhi
  cmp r0, r8
  add r4, r4, #16
  add r7, r7, #2
  bne .L2504
.L2584:
  ldr r3, [sp, #0]
  add fp, fp, r0, asl #4
  add r0, r3, r0, asl #1
.L2503:
  ands  r4, r9, #7
  beq .L2556
  ldrh  r0, [r0, #0]
  mov r3, r0, asl #22
  mov r3, r3, lsr #22
  tst r0, #2048
  add r3, sl, r3, asl #5
  addne r3, r3, ip
  mov r2, r0, lsr #12
  tst r0, #1024
  mov r2, r2, asl #4
  ldreq r0, [r3, #0]
  moveq ip, #0
  beq .L2552
  ldr r0, [r3, #0]
  mov ip, #0
.L2548:
  movs  r3, r0, lsr #28
  orr r3, r2, r3
  mov r1, ip, asl #1
  orr r3, r3, lr
  add ip, ip, #1
  strneh  r3, [r1, fp]  @ movhi
  cmp r4, ip
  mov r0, r0, asl #4
  bne .L2548
  b .L2556
.L2580:
  cmp r1, #0
  bne .L2586
.L2350:
  ldr r1, [sp, #4]
  movs  r0, r1, lsr #3
  beq .L2385
  mov r4, fp
  mov r6, r7
  mov r8, #0
  b .L2387
.L2588:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L2392
  ands  r3, r2, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #14] @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #12] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #10] @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #8]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #6]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #4]  @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #0]  @ movhi
.L2392:
  add r8, r8, #1
  cmp r0, r8
  add r4, r4, #16
  add r6, r6, #2
  beq .L2587
.L2387:
  ldrh  r1, [r6, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r5, r3, asl #4
  add r3, sl, r2, asl #5
  addne r3, r3, ip
  tst r1, #1024
  bne .L2588
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L2392
  ands  r3, r2, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r5, r3
  orrne r3, r3, lr
  strneh  r3, [r4, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r5, r3
  orrne r3, r3, lr
  add r8, r8, #1
  strneh  r3, [r4, #14] @ movhi
  cmp r0, r8
  add r4, r4, #16
  add r6, r6, #2
  bne .L2387
.L2587:
  add fp, fp, r0, asl #4
  add r7, r7, r0, asl #1
.L2385:
  ldr r3, [sp, #4]
  ands  r4, r3, #7
  beq .L2556
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r0, sl, r3, asl #5
  addne r0, r0, ip
  mov r2, r1, lsr #12
  tst r1, #1024
  mov r2, r2, asl #4
  ldreq r0, [r0, #0]
  moveq ip, #0
  beq .L2435
  ldr r0, [r0, #0]
  mov ip, #0
.L2431:
  movs  r3, r0, lsr #28
  orr r3, r2, r3
  mov r1, ip, asl #1
  orr r3, r3, lr
  add ip, ip, #1
  strneh  r3, [r1, fp]  @ movhi
  cmp r4, ip
  mov r0, r0, asl #4
  bne .L2431
  b .L2556
.L2574:
  cmp r4, #0
  bne .L2589
.L1969:
  ldr r3, [sp, #4]
  movs  sl, r3, lsr #3
  beq .L2083
  mov r5, fp
  mov r6, r7
  mov r8, #0
  b .L2085
.L2591:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L2090
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [r5, #0]  @ movhi
.L2090:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L2099
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #14] @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #12] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #10] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [r5, #8]  @ movhi
.L2099:
  add r8, r8, #1
  cmp sl, r8
  add r5, r5, #16
  add r6, r6, #2
  beq .L2590
.L2085:
  ldrh  r1, [r6, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r4, r2, r3, asl #6
  addne r4, r4, ip
  tst r1, #1024
  bne .L2591
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L2108
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #0]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #2]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [r5, #6]  @ movhi
.L2108:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L2099
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #10] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [r5, #12] @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  add r8, r8, #1
  strneh  r3, [r5, #14] @ movhi
  cmp sl, r8
  add r5, r5, #16
  add r6, r6, #2
  bne .L2085
.L2590:
  add fp, fp, sl, asl #4
  add r7, r7, sl, asl #1
.L2083:
  ldr r1, [sp, #4]
  ands  r4, r1, #7
  beq .L2556
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r0, r2, r3, asl #6
  addne r0, r0, ip
  tst r1, #1024
  beq .L2129
  cmp r4, #3
  ldrls r0, [r0, #4]
  bls .L2143
  ldr r1, [r0, #4]
  cmp r1, #0
  beq .L2133
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [fp, #0]  @ movhi
.L2133:
  subs  r4, r4, #4
  ldr r0, [r0, #0]
  addne fp, fp, #8
  beq .L2556
.L2143:
  mov r1, #0
.L2144:
  movs  r3, r0, lsr #24
  mov r2, r1, asl #1
  orr r3, r3, lr
  add r1, r1, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp r4, r1
  mov r0, r0, asl #8
  bhi .L2144
  b .L2556
.L2552:
  ands  r3, r0, #15
  orr r3, r2, r3
  mov r1, ip, asl #1
  orr r3, r3, lr
  add ip, ip, #1
  strneh  r3, [r1, fp]  @ movhi
  cmp r4, ip
  mov r0, r0, lsr #4
  bne .L2552
  b .L2556
.L2586:
  ldr r3, [sp, #4]
  rsb r5, r1, #8
  cmp r3, r5
  bcs .L2352
  ldrh  r4, [r7, #0]
  mov r3, r4, asl #22
  mov r3, r3, lsr #22
  tst r4, #2048
  add r0, sl, r3, asl #5
  mov r2, r4, lsr #12
  addne r0, r0, ip
  tst r4, #1024
  mov r2, r2, asl #4
  bne .L2592
  ldr r3, [sp, #4]
  ldr r0, [r0, #0]
  cmp r3, #0
  beq .L2556
  mov r3, r1, asl #2
  mov r0, r0, lsr r3
  mov ip, #0
.L2364:
  ands  r3, r0, #15
  orr r3, r2, r3
  mov r1, ip, asl #1
  orr r3, r3, lr
  strneh  r3, [r1, fp]  @ movhi
  ldr r1, [sp, #4]
  add ip, ip, #1
  cmp r1, ip
  mov r0, r0, lsr #4
  bne .L2364
  b .L2556
.L2581:
  ldrh  r6, [r7, #0]
  rsb r8, r1, #8
  mov r2, r6, asl #22
  mov r3, r6, lsr #12
  mov r2, r2, lsr #22
  tst r6, #2048
  mov r9, r3, asl #4
  add r3, sl, r2, asl #5
  addne r3, r3, ip
  tst r6, #1024
  beq .L2444
  cmp r8, #0
  ldr r2, [r3, #0]
  beq .L2446
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  mov r4, #0
.L2448:
  movs  r3, r1, lsr #28
  orr r3, r9, r3
  mov r2, r4, asl #1
  orr r3, r3, lr
  add r4, r4, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp r8, r4
  mov r1, r1, asl #4
  bne .L2448
  add fp, fp, r8, asl #1
.L2446:
  add r7, r7, #2
  b .L2441
.L2575:
  ldrh  r1, [r7, #0]
  rsb r8, r4, #8
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add sl, r2, r3, asl #6
  addne sl, sl, ip
  ands  r6, r1, #1024
  beq .L2170
  cmp r4, #3
  bhi .L2593
  subs  r5, r8, #4
  ldr r1, [sl, #4]
  beq .L2181
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r6, #0
.L2183:
  movs  r3, r1, lsr #24
  mov r4, r6, asl #1
  orr r3, r3, lr
  add r6, r6, #1
  strneh  r3, [r4, fp]  @ movhi
  cmp r5, r6
  mov r1, r1, asl #8
  bne .L2183
  add r3, fp, r8, asl #1
  sub fp, r3, #8
.L2181:
  ldr r1, [sl, #0]
  cmp r1, #0
  beq .L2212
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [fp, #0]  @ movhi
.L2212:
  add fp, fp, #8
  mov r8, r5
.L2174:
  add r7, r7, #2
  b .L2167
.L2589:
  rsb r0, r4, #8
  cmp r1, r0
  bcs .L1971
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r0, r2, r3, asl #6
  addne r0, r0, ip
  tst r1, #1024
  bne .L2594
  cmp r4, #3
  bls .L2004
  ldr ip, [sp, #4]
  ldr r0, [r0, #4]
  cmp ip, #0
  beq .L2556
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r0, r0, lsr r3
  mov r1, #0
.L2007:
  ands  r3, r0, #255
  orr r3, r3, lr
  mov r2, r1, asl #1
  strneh  r3, [r2, fp]  @ movhi
  ldr r3, [sp, #4]
  add r1, r1, #1
  cmp r3, r1
  mov r0, r0, lsr #8
  bne .L2007
  b .L2556
.L2600:
  .align  2
.L2599:
  .word io_registers
  .word map_widths
  .word vram
.L2435:
  ands  r3, r0, #15
  orr r3, r2, r3
  mov r1, ip, asl #1
  orr r3, r3, lr
  add ip, ip, #1
  strneh  r3, [r1, fp]  @ movhi
  cmp r4, ip
  mov r0, r0, lsr #4
  bne .L2435
  b .L2556
.L2312:
  cmp r4, #3
  ldrls r0, [r2, #0]
  bls .L2343
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L2333
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #0]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #2]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [fp, #6]  @ movhi
.L2333:
  subs  r4, r4, #4
  ldr r0, [r2, #4]
  addne fp, fp, #8
  beq .L2556
.L2343:
  mov r1, #0
.L2344:
  ands  r3, r0, #255
  mov r2, r1, asl #1
  orr r3, r3, lr
  add r1, r1, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp r1, r4
  mov r0, r0, lsr #8
  bcc .L2344
  b .L2556
.L2129:
  cmp r4, #3
  ldrls r0, [r0, #0]
  bls .L2160
  ldr r1, [r0, #0]
  cmp r1, #0
  beq .L2150
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #0]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #2]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [fp, #6]  @ movhi
.L2150:
  subs  r4, r4, #4
  ldr r0, [r0, #4]
  addne fp, fp, #8
  beq .L2556
.L2160:
  mov r1, #0
.L2161:
  ands  r3, r0, #255
  mov r2, r1, asl #1
  orr r3, r3, lr
  add r1, r1, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp r4, r1
  mov r0, r0, lsr #8
  bhi .L2161
  b .L2556
.L2352:
  ldrh  r4, [r7, #0]
  mov r2, r4, asl #22
  mov r3, r4, lsr #12
  mov r2, r2, lsr #22
  tst r4, #2048
  mov r0, r3, asl #4
  add r3, sl, r2, asl #5
  addne r3, r3, ip
  tst r4, #1024
  bne .L2595
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L2372
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  mov r4, #0
.L2380:
  ands  r3, r1, #15
  orr r3, r0, r3
  mov r2, r4, asl #1
  orr r3, r3, lr
  add r4, r4, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp r5, r4
  mov r1, r1, lsr #4
  bne .L2380
.L2571:
  add fp, fp, r5, asl #1
.L2372:
  ldr r3, [sp, #4]
  add r7, r7, #2
  rsb r3, r5, r3
  str r3, [sp, #4]
  b .L2350
.L2444:
  cmp r8, #0
  ldr r2, [r3, #0]
  beq .L2446
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  mov r4, #0
.L2454:
  ands  r3, r1, #15
  orr r3, r9, r3
  mov r2, r4, asl #1
  orr r3, r3, lr
  add r4, r4, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp r8, r4
  mov r1, r1, lsr #4
  bne .L2454
  add fp, fp, r8, asl #1
  b .L2446
.L2170:
  cmp r4, #3
  bhi .L2596
  subs  r5, r8, #4
  ldr r1, [sl, #0]
  beq .L2205
  mov r3, r4, asl #3
  mov r1, r1, lsr r3
  mov r6, #0
.L2207:
  ands  r3, r1, #255
  mov r4, r6, asl #1
  orr r3, r3, lr
  add r6, r6, #1
  strneh  r3, [r4, fp]  @ movhi
  cmp r5, r6
  mov r1, r1, lsr #8
  bne .L2207
  add r3, fp, r8, asl #1
  sub fp, r3, #8
.L2205:
  ldr r1, [sl, #4]
  cmp r1, #0
  beq .L2212
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #0]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #2]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [fp, #6]  @ movhi
  b .L2212
.L1971:
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r6, r2, r3, asl #6
  addne r6, r6, ip
  ands  r5, r1, #1024
  bne .L2597
  cmp r4, #3
  bls .L2059
  cmp r0, #0
  ldr r1, [r6, #4]
  beq .L2036
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
.L2062:
  ands  r3, r1, #255
  mov r4, r5, asl #1
  orr r3, r3, lr
  add r5, r5, #1
  strneh  r3, [r4, fp]  @ movhi
  cmp r0, r5
  mov r1, r1, lsr #8
  bne .L2062
.L2558:
  add fp, fp, r0, asl #1
.L2036:
  ldr r1, [sp, #4]
  add r7, r7, #2
  rsb r1, r0, r1
  str r1, [sp, #4]
  b .L1969
.L2593:
  cmp r8, #0
  ldr r1, [sl, #0]
  beq .L2174
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r6, #0
.L2176:
  movs  r3, r1, lsr #24
  mov r4, r6, asl #1
  orr r3, r3, lr
  add r6, r6, #1
  strneh  r3, [r4, fp]  @ movhi
  cmp r8, r6
  mov r1, r1, asl #8
  bne .L2176
  add fp, fp, r8, asl #1
.L2598:
  add r7, r7, #2
  b .L2167
.L2592:
  ldr ip, [sp, #4]
  ldr r0, [r0, #0]
  cmp ip, #0
  beq .L2556
  mov r3, r1, asl #2
  mov r0, r0, asl r3
  mov ip, #0
.L2359:
  movs  r3, r0, lsr #28
  orr r3, r2, r3
  mov r1, ip, asl #1
  orr r3, r3, lr
  strneh  r3, [r1, fp]  @ movhi
  ldr r1, [sp, #4]
  add ip, ip, #1
  cmp r1, ip
  mov r0, r0, asl #4
  bne .L2359
  b .L2556
.L2597:
  cmp r4, #3
  bls .L2034
  cmp r0, #0
  ldr r1, [r6, #0]
  beq .L2036
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r5, #0
.L2038:
  movs  r3, r1, lsr #24
  mov r4, r5, asl #1
  orr r3, r3, lr
  add r5, r5, #1
  strneh  r3, [r4, fp]  @ movhi
  cmp r0, r5
  mov r1, r1, asl #8
  bne .L2038
  b .L2558
.L2595:
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L2372
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  mov r4, #0
.L2374:
  movs  r3, r1, lsr #28
  orr r3, r0, r3
  mov r2, r4, asl #1
  orr r3, r3, lr
  add r4, r4, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp r5, r4
  mov r1, r1, asl #4
  bne .L2374
  b .L2571
.L2594:
  cmp r4, #3
  bls .L1977
  ldr r3, [sp, #4]
  ldr r0, [r0, #0]
  cmp r3, #0
  beq .L2556
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r0, r0, asl r3
  mov r1, #0
.L1981:
  movs  r3, r0, lsr #24
  ldr ip, [sp, #4]
  mov r2, r1, asl #1
  orr r3, r3, lr
  add r1, r1, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp ip, r1
  mov r0, r0, asl #8
  bne .L1981
  b .L2556
.L2596:
  cmp r8, #0
  ldr r1, [sl, #4]
  beq .L2174
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
.L2200:
  ands  r3, r1, #255
  mov r4, r6, asl #1
  orr r3, r3, lr
  add r6, r6, #1
  strneh  r3, [r4, fp]  @ movhi
  cmp r8, r6
  mov r1, r1, lsr #8
  bne .L2200
  add fp, fp, r8, asl #1
  b .L2598
.L1977:
  ldr ip, [sp, #4]
  mov r3, r4, asl #3
  ldr r1, [r0, #4]
  add r2, ip, r4
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L1985
  cmp ip, #0
  movne r0, #0
  beq .L2556
.L2000:
  movs  r3, r1, lsr #24
  orr r3, r3, lr
  mov r2, r0, asl #1
  strneh  r3, [r2, fp]  @ movhi
  ldr r3, [sp, #4]
  add r0, r0, #1
  cmp r3, r0
  mov r1, r1, asl #8
  bne .L2000
  b .L2556
.L2034:
  subs  r8, r0, #4
  ldr r1, [r6, #4]
  beq .L2043
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r5, #0
.L2045:
  movs  r3, r1, lsr #24
  mov r4, r5, asl #1
  orr r3, r3, lr
  add r5, r5, #1
  strneh  r3, [r4, fp]  @ movhi
  cmp r8, r5
  mov r1, r1, asl #8
  bne .L2045
  add r3, fp, r0, asl #1
  sub fp, r3, #8
.L2043:
  ldr r1, [r6, #0]
  cmp r1, #0
  beq .L2074
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #2]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [fp, #0]  @ movhi
.L2074:
  add fp, fp, #8
  b .L2036
.L2004:
  ldr ip, [sp, #4]
  ldr r3, [r0, #0]
  add r2, ip, r4
  cmp r2, #4
  mov r1, r4, asl #3
  mov r2, r3, lsr r1
  bhi .L2011
  cmp ip, #0
  movne r0, #0
  beq .L2556
.L2026:
  ands  r3, r2, #255
  orr r3, r3, lr
  mov r1, r0, asl #1
  strneh  r3, [r1, fp]  @ movhi
  ldr r3, [sp, #4]
  add r0, r0, #1
  cmp r3, r0
  mov r2, r2, lsr #8
  bne .L2026
  b .L2556
.L2059:
  subs  r8, r0, #4
  ldr r1, [r6, #0]
  beq .L2067
  mov r3, r4, asl #3
  mov r1, r1, lsr r3
  mov r5, #0
.L2069:
  ands  r3, r1, #255
  mov r4, r5, asl #1
  orr r3, r3, lr
  add r5, r5, #1
  strneh  r3, [r4, fp]  @ movhi
  cmp r8, r5
  mov r1, r1, lsr #8
  bne .L2069
  add r3, fp, r0, asl #1
  sub fp, r3, #8
.L2067:
  ldr r1, [r6, #4]
  cmp r1, #0
  beq .L2074
  ands  r3, r1, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #0]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #2]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, r3, lr
  strneh  r3, [fp, #4]  @ movhi
  movs  r3, r1, lsr #24
  orrne r3, r3, lr
  strneh  r3, [fp, #6]  @ movhi
  add fp, fp, #8
  b .L2036
.L1985:
  rsbs  r4, r4, #4
  beq .L1988
  mov ip, #0
.L1990:
  movs  r3, r1, lsr #24
  mov r2, ip, asl #1
  orr r3, r3, lr
  add ip, ip, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp r4, ip
  mov r1, r1, asl #8
  bne .L1990
  add fp, fp, r4, asl #1
.L1988:
  ldr r1, [sp, #4]
  ldr r0, [r0, #0]
  subs  ip, r1, r4
  beq .L2556
  mov r1, #0
.L1996:
  movs  r3, r0, lsr #24
  mov r2, r1, asl #1
  orr r3, r3, lr
  add r1, r1, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp ip, r1
  mov r0, r0, asl #8
  bne .L1996
  b .L2556
.L2011:
  rsbs  r4, r4, #4
  beq .L2014
  mov ip, #0
.L2016:
  ands  r3, r2, #255
  mov r1, ip, asl #1
  orr r3, r3, lr
  add ip, ip, #1
  strneh  r3, [r1, fp]  @ movhi
  cmp r4, ip
  mov r2, r2, lsr #8
  bne .L2016
  add fp, fp, r4, asl #1
.L2014:
  ldr r1, [sp, #4]
  ldr r0, [r0, #4]
  subs  ip, r1, r4
  beq .L2556
  mov r1, #0
.L2022:
  ands  r3, r0, #255
  mov r2, r1, asl #1
  orr r3, r3, lr
  add r1, r1, #1
  strneh  r3, [r2, fp]  @ movhi
  cmp ip, r1
  mov r0, r0, lsr #8
  bne .L2022
  b .L2556
  .size render_scanline_text_transparent_color16, .-render_scanline_text_transparent_color16
  .align  2
  .global render_scanline_text_base_color32
  .type render_scanline_text_base_color32, %function
render_scanline_text_base_color32:
  @ args = 0, pretend = 0, frame = 16
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr ip, .L3398
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldrh  r5, [ip, #80]
  add r7, r0, #7
  mov r8, r5, asr r0
  mov r7, r5, asr r7
  add r6, ip, r0, asl #2
  ldrh  r4, [ip, #6]
  ldrh  lr, [r6, #18]
  add ip, ip, r0, asl #1
  add fp, r4, lr
  ldrh  r9, [ip, #8]
  mov sl, fp, asl #23
  rsb r2, r1, r2
  sub sp, sp, #16
  mov sl, sl, lsr #23
  cmp sl, #255
  movls r4, #0
  movhi r4, #1
  ldrh  lr, [r6, #16]
  str r2, [sp, #12]
  mov r6, r9, lsr #14
  ldr r2, .L3398+4
  ands  r4, r4, r6, lsr #1
  and r7, r7, #2
  and r8, r8, #1
  add lr, lr, r1
  orr r8, r8, r7
  mov ip, r9, asl #3
  add r7, r3, r1, asl #2
  ldr r2, [r2, r6, asl #2]
  subne r3, sl, #256
  ldr r1, .L3398+8
  movne r3, r3, lsr #3
  moveq r3, fp, asl #3
  and ip, ip, #63488
  addne r3, r3, r2, lsr #3
  andeq r3, r3, #1984
  add ip, ip, r1
  mov lr, lr, asl #23
  addne r4, ip, r3, asl #6
  addeq r4, ip, r3
  mov r0, r5, lsr #12
  tst r6, #1
  mov lr, lr, lsr #23
  and r0, r0, #2
  mov r5, r5, asl #26
  andeq lr, lr, #255
  orr r0, r0, r5, lsr #31
  moveq r3, lr, lsr #3
  mov r0, r0, asl #9
  mov r8, r8, asl #9
  addeq fp, r4, r3, asl #1
  streq r4, [sp, #0]
  beq .L2609
  cmp lr, #255
  subhi lr, lr, #256
  movhi r3, lr, lsr #3
  movls r3, lr, lsr #3
  addhi r3, r4, r3, asl #1
  addls fp, r4, r3, asl #1
  addls r4, r4, #2048
  addhi fp, r3, #2048
  strhi r4, [sp, #0]
  strls r4, [sp, #0]
.L2609:
  tst r9, #128
  beq .L2610
  mov r2, r9, asl #12
  and r3, sl, #7
  and r1, lr, #255
  mov r3, r3, asl #3
  and r2, r2, #49152
  ldr r4, [sp, #12]
  rsb r9, r1, #256
  add r2, r2, r3
  ldr r1, .L3398+8
  mov r3, r3, asl #1
  rsb r3, r3, #56
  cmp r4, r9
  add r2, r2, r1
  str r3, [sp, #4]
  and lr, lr, #7
  bls .L3366
  cmp lr, #0
  moveq r6, lr
  bne .L3367
.L2850:
  rsb r3, r6, r9
  movs  sl, r3, lsr #3
  beq .L2914
  mov lr, r7
  mov r6, #0
  b .L2916
.L3368:
  ldr r1, [r5, #4]
  add r6, r6, #1
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #12]
  mov r3, r1, lsr #8
  streq r0, [lr, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #8]
  mov r3, r1, lsr #16
  streq r0, [lr, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #4]
  streq r0, [lr, #4]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  ldr r1, [r5, #0]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #28]
  mov r3, r1, lsr #8
  streq r0, [lr, #28]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #24]
  mov r3, r1, lsr #16
  streq r0, [lr, #24]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #20]
  streq r0, [lr, #20]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #16]
  streq r0, [lr, #16]
  cmp sl, r6
  add lr, lr, #32
  beq .L2968
.L3369:
  add fp, fp, #2
.L2916:
  ldrh  r1, [fp, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r5, r2, r3, asl #6
  ldrne r3, [sp, #4]
  addne r5, r5, r3
  tst r1, #1024
  bne .L3368
  ldr r1, [r5, #0]
  add r6, r6, #1
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #0]
  mov r3, r1, lsr #8
  streq r0, [lr, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #4]
  mov r3, r1, lsr #16
  streq r0, [lr, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #8]
  streq r0, [lr, #8]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #12]
  streq r0, [lr, #12]
  ldr r1, [r5, #4]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #16]
  mov r3, r1, lsr #8
  streq r0, [lr, #16]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #20]
  mov r3, r1, lsr #16
  streq r0, [lr, #20]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #24]
  streq r0, [lr, #24]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #28]
  streq r0, [lr, #28]
  cmp sl, r6
  add lr, lr, #32
  bne .L3369
.L2968:
  add r7, r7, sl, asl #5
.L2914:
  ldr r4, [sp, #12]
  rsb r9, r9, r4
  movs  r4, r9, lsr #3
  ldreq r3, [sp, #0]
  beq .L2972
  ldr r6, [sp, #0]
  mov lr, r7
  mov sl, #0
  b .L2973
.L3371:
  ldr r1, [r5, #4]
  add sl, sl, #1
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #12]
  mov r3, r1, lsr #8
  streq r0, [lr, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #8]
  mov r3, r1, lsr #16
  streq r0, [lr, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #4]
  streq r0, [lr, #4]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  ldr r1, [r5, #0]
  add r6, r6, #2
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #28]
  mov r3, r1, lsr #8
  streq r0, [lr, #28]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #24]
  mov r3, r1, lsr #16
  streq r0, [lr, #24]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #20]
  streq r0, [lr, #20]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #16]
  streq r0, [lr, #16]
  cmp r4, sl
  add lr, lr, #32
  beq .L3370
.L2973:
  ldrh  r1, [r6, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r5, r2, r3, asl #6
  ldrne r3, [sp, #4]
  addne r5, r5, r3
  tst r1, #1024
  bne .L3371
  ldr r1, [r5, #0]
  add sl, sl, #1
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #0]
  mov r3, r1, lsr #8
  streq r0, [lr, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #4]
  mov r3, r1, lsr #16
  streq r0, [lr, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #8]
  streq r0, [lr, #8]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #12]
  streq r0, [lr, #12]
  ldr r1, [r5, #4]
  add r6, r6, #2
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #16]
  mov r3, r1, lsr #8
  streq r0, [lr, #16]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #20]
  mov r3, r1, lsr #16
  streq r0, [lr, #20]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #24]
  streq r0, [lr, #24]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #28]
  streq r0, [lr, #28]
  cmp r4, sl
  add lr, lr, #32
  bne .L2973
.L3370:
  ldr r1, [sp, #0]
  add r7, r7, r4, asl #5
  add r3, r1, r4, asl #1
.L2972:
  ands  lr, r9, #7
  beq .L3345
  ldrh  r4, [r3, #0]
  mov r3, r4, asl #22
  mov r3, r3, lsr #22
  tst r4, #2048
  add r2, r2, r3, asl #6
  ldrne r3, [sp, #4]
  addne r2, r2, r3
  tst r4, #1024
  beq .L3029
  cmp lr, #3
  ldrls r2, [r2, #4]
  bhi .L3372
.L3046:
  mov r1, #0
.L3047:
  movs  r3, r2, lsr #24
  orr r3, r8, r3
  add r1, r1, #1
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  cmp r1, lr
  mov r2, r2, asl #8
  add r7, r7, #4
  bcc .L3047
.L3345:
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L2610:
  mov r2, r9, asl #12
  and r3, sl, #7
  and r1, lr, #255
  mov r3, r3, asl #2
  and r2, r2, #49152
  ldr r4, [sp, #12]
  rsb r9, r1, #256
  add r2, r2, r3
  ldr r1, .L3398+8
  mov r3, r3, asl #1
  rsb r3, r3, #28
  cmp r4, r9
  add ip, r2, r1
  str r3, [sp, #8]
  and r1, lr, #7
  bls .L3373
  cmp r1, #0
  moveq r6, r1
  bne .L3374
.L3190:
  rsb r3, r6, r9
  movs  sl, r3, lsr #3
  beq .L3210
  mov lr, r7
  mov r6, #0
  b .L3212
.L3375:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3243
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #28]
  mov r3, r2, lsr #4
  streq r0, [lr, #28]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #24]
  mov r3, r2, lsr #8
  streq r0, [lr, #24]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #20]
  mov r3, r2, lsr #12
  streq r0, [lr, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #16]
  mov r3, r2, lsr #16
  streq r0, [lr, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #12]
  mov r3, r2, lsr #20
  streq r0, [lr, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #8]
  mov r3, r2, lsr #24
  streq r0, [lr, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #4]
  streq r0, [lr, #4]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L3242:
  add r6, r6, #1
  cmp sl, r6
  add lr, lr, #32
  beq .L3268
.L3376:
  add fp, fp, #2
.L3212:
  ldrh  r1, [fp, #0]
  tst r1, #2048
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  ldrne r4, [sp, #8]
  mov r2, r2, lsr #22
  mov r5, r3, asl #4
  add r3, ip, r2, asl #5
  addne r3, r3, r4
  tst r1, #1024
  bne .L3375
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3243
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #0]
  mov r3, r2, lsr #4
  streq r0, [lr, #0]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #4]
  mov r3, r2, lsr #8
  streq r0, [lr, #4]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #8]
  mov r3, r2, lsr #12
  streq r0, [lr, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #12]
  mov r3, r2, lsr #16
  streq r0, [lr, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #16]
  mov r3, r2, lsr #20
  streq r0, [lr, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #20]
  mov r3, r2, lsr #24
  streq r0, [lr, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #24]
  streq r0, [lr, #24]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #28]
  bne .L3242
  str r0, [lr, #28]
.L3386:
  add r6, r6, #1
  cmp sl, r6
  add lr, lr, #32
  bne .L3376
.L3268:
  add r7, r7, sl, asl #5
.L3210:
  ldr r1, [sp, #12]
  rsb r9, r9, r1
  movs  r4, r9, lsr #3
  ldreq r2, [sp, #0]
  beq .L3272
  ldr r6, [sp, #0]
  mov lr, r7
  mov sl, #0
  b .L3273
.L3378:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3304
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #28]
  mov r3, r2, lsr #4
  streq r0, [lr, #28]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #24]
  mov r3, r2, lsr #8
  streq r0, [lr, #24]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #20]
  mov r3, r2, lsr #12
  streq r0, [lr, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #16]
  mov r3, r2, lsr #16
  streq r0, [lr, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #12]
  mov r3, r2, lsr #20
  streq r0, [lr, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #8]
  mov r3, r2, lsr #24
  streq r0, [lr, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #4]
  streq r0, [lr, #4]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L3303:
  add sl, sl, #1
  cmp r4, sl
  add lr, lr, #32
  add r6, r6, #2
  beq .L3377
.L3273:
  ldrh  r1, [r6, #0]
  mov r2, r1, asl #22
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r3, r1, lsr #12
  mov r5, r3, asl #4
  add r3, ip, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst r1, #1024
  bne .L3378
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3304
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #0]
  mov r3, r2, lsr #4
  streq r0, [lr, #0]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #4]
  mov r3, r2, lsr #8
  streq r0, [lr, #4]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #8]
  mov r3, r2, lsr #12
  streq r0, [lr, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #12]
  mov r3, r2, lsr #16
  streq r0, [lr, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #16]
  mov r3, r2, lsr #20
  streq r0, [lr, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #20]
  mov r3, r2, lsr #24
  streq r0, [lr, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #24]
  streq r0, [lr, #24]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #28]
  bne .L3303
  str r0, [lr, #28]
.L3387:
  add sl, sl, #1
  cmp r4, sl
  add lr, lr, #32
  add r6, r6, #2
  bne .L3273
.L3377:
  ldr r3, [sp, #0]
  add r7, r7, r4, asl #5
  add r2, r3, r4, asl #1
.L3272:
  ands  lr, r9, #7
  beq .L3345
  ldrh  r4, [r2, #0]
  tst r4, #2048
  mov r3, r4, asl #22
  ldrne r1, [sp, #8]
  mov r3, r3, lsr #22
  add r3, ip, r3, asl #5
  addne r3, r3, r1
  mov r2, r4, lsr #12
  tst r4, #1024
  mov ip, r2, asl #4
  moveq r1, #0
  ldreq r2, [r3, #0]
  beq .L3340
  ldr r2, [r3, #0]
  mov r1, #0
.L3335:
  movs  r3, r2, lsr #28
  orr r3, r8, r3
  orr r3, ip, r3
  add r1, r1, #1
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  cmp lr, r1
  mov r2, r2, asl #4
  add r7, r7, #4
  bne .L3335
  b .L3345
.L3373:
  cmp r1, #0
  bne .L3379
.L3075:
  ldr r4, [sp, #12]
  movs  r9, r4, lsr #3
  beq .L3114
  mov lr, r7
  mov r6, fp
  mov sl, #0
  b .L3116
.L3381:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3147
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #28]
  mov r3, r2, lsr #4
  streq r0, [lr, #28]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #24]
  mov r3, r2, lsr #8
  streq r0, [lr, #24]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #20]
  mov r3, r2, lsr #12
  streq r0, [lr, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #16]
  mov r3, r2, lsr #16
  streq r0, [lr, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #12]
  mov r3, r2, lsr #20
  streq r0, [lr, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #8]
  mov r3, r2, lsr #24
  streq r0, [lr, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #4]
  streq r0, [lr, #4]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L3146:
  add sl, sl, #1
  cmp r9, sl
  add lr, lr, #32
  add r6, r6, #2
  beq .L3380
.L3116:
  ldrh  r1, [r6, #0]
  mov r2, r1, asl #22
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r3, r1, lsr #12
  mov r5, r3, asl #4
  add r3, ip, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst r1, #1024
  bne .L3381
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3147
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #0]
  mov r3, r2, lsr #4
  streq r0, [lr, #0]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #4]
  mov r3, r2, lsr #8
  streq r0, [lr, #4]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #8]
  mov r3, r2, lsr #12
  streq r0, [lr, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #12]
  mov r3, r2, lsr #16
  streq r0, [lr, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #16]
  mov r3, r2, lsr #20
  streq r0, [lr, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #20]
  mov r3, r2, lsr #24
  streq r0, [lr, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #24]
  streq r0, [lr, #24]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r5, r3
  strne r3, [lr, #28]
  bne .L3146
  str r0, [lr, #28]
.L3391:
  add sl, sl, #1
  cmp r9, sl
  add lr, lr, #32
  add r6, r6, #2
  bne .L3116
.L3380:
  add r7, r7, r9, asl #5
  add fp, fp, r9, asl #1
.L3114:
  ldr r3, [sp, #12]
  ands  lr, r3, #7
  beq .L3345
  ldrh  r1, [fp, #0]
  tst r1, #2048
  mov r3, r1, asl #22
  ldrne r4, [sp, #8]
  mov r3, r3, lsr #22
  add r3, ip, r3, asl #5
  mov r2, r1, lsr #12
  addne r3, r3, r4
  tst r1, #1024
  mov ip, r2, asl #4
  moveq r1, #0
  ldreq r2, [r3, #0]
  beq .L3183
  ldr r2, [r3, #0]
  mov r1, #0
.L3178:
  movs  r3, r2, lsr #28
  orr r3, r8, r3
  orr r3, ip, r3
  add r1, r1, #1
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  cmp lr, r1
  mov r2, r2, asl #4
  add r7, r7, #4
  bne .L3178
  b .L3345
.L3366:
  cmp lr, #0
  bne .L3382
.L2614:
  ldr r3, [sp, #12]
  movs  r9, r3, lsr #3
  beq .L2746
  mov lr, r7
  mov r6, fp
  mov sl, #0
  b .L2748
.L3384:
  ldr r1, [r5, #4]
  add sl, sl, #1
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #12]
  mov r3, r1, lsr #8
  streq r0, [lr, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #8]
  mov r3, r1, lsr #16
  streq r0, [lr, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #4]
  streq r0, [lr, #4]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  ldr r1, [r5, #0]
  add r6, r6, #2
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #28]
  mov r3, r1, lsr #8
  streq r0, [lr, #28]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #24]
  mov r3, r1, lsr #16
  streq r0, [lr, #24]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #20]
  streq r0, [lr, #20]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #16]
  streq r0, [lr, #16]
  cmp r9, sl
  add lr, lr, #32
  beq .L3383
.L2748:
  ldrh  r1, [r6, #0]
  tst r1, #2048
  mov r3, r1, asl #22
  ldrne r4, [sp, #4]
  mov r3, r3, lsr #22
  add r5, r2, r3, asl #6
  addne r5, r5, r4
  tst r1, #1024
  bne .L3384
  ldr r1, [r5, #0]
  add sl, sl, #1
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #0]
  mov r3, r1, lsr #8
  streq r0, [lr, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #4]
  mov r3, r1, lsr #16
  streq r0, [lr, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #8]
  streq r0, [lr, #8]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #12]
  streq r0, [lr, #12]
  ldr r1, [r5, #4]
  add r6, r6, #2
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [lr, #16]
  mov r3, r1, lsr #8
  streq r0, [lr, #16]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #20]
  mov r3, r1, lsr #16
  streq r0, [lr, #20]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [lr, #24]
  streq r0, [lr, #24]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [lr, #28]
  streq r0, [lr, #28]
  cmp r9, sl
  add lr, lr, #32
  bne .L2748
.L3383:
  add r7, r7, r9, asl #5
  add fp, fp, r9, asl #1
.L2746:
  ldr r1, [sp, #12]
  ands  lr, r1, #7
  beq .L3345
  ldrh  r1, [fp, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r2, r2, r3, asl #6
  ldrne r3, [sp, #4]
  addne r2, r2, r3
  tst r1, #1024
  beq .L2804
  cmp lr, #3
  ldrls r2, [r2, #4]
  bhi .L3385
.L2821:
  mov r1, #0
.L2822:
  movs  r3, r2, lsr #24
  orr r3, r8, r3
  add r1, r1, #1
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  cmp lr, r1
  mov r2, r2, asl #8
  add r7, r7, #4
  bhi .L2822
  b .L3345
.L3243:
  str r0, [lr, #0]
  str r0, [lr, #4]
  str r0, [lr, #8]
  str r0, [lr, #12]
  str r0, [lr, #16]
  str r0, [lr, #20]
  str r0, [lr, #24]
  str r0, [lr, #28]
  b .L3386
.L3304:
  str r0, [lr, #0]
  str r0, [lr, #4]
  str r0, [lr, #8]
  str r0, [lr, #12]
  str r0, [lr, #16]
  str r0, [lr, #20]
  str r0, [lr, #24]
  str r0, [lr, #28]
  b .L3387
.L3340:
  ands  r3, r2, #15
  orr r3, r8, r3
  orr r3, ip, r3
  add r1, r1, #1
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  cmp lr, r1
  mov r2, r2, lsr #4
  add r7, r7, #4
  bne .L3340
  b .L3345
.L3379:
  rsb r5, r1, #8
  cmp r4, r5
  bcs .L3077
  ldrh  lr, [fp, #0]
  mov r3, lr, asl #22
  mov r3, r3, lsr #22
  tst lr, #2048
  add ip, ip, r3, asl #5
  ldrne r3, [sp, #8]
  mov r2, lr, lsr #12
  addne ip, ip, r3
  tst lr, #1024
  mov r2, r2, asl #4
  bne .L3388
  ldr r4, [sp, #12]
  ldr ip, [ip, #0]
  cmp r4, #0
  beq .L3345
  mov r3, r1, asl #2
  mov r1, ip, lsr r3
  mov ip, #0
.L3090:
  ands  r3, r1, #15
  orr r3, r8, r3
  orr r3, r2, r3
  strne r3, [r7, #0]
  ldr r3, [sp, #12]
  add ip, ip, #1
  streq r0, [r7, #0]
  cmp r3, ip
  mov r1, r1, lsr #4
  add r7, r7, #4
  bne .L3090
  b .L3345
.L3374:
  ldrh  r5, [fp, #0]
  rsb r6, r1, #8
  mov r2, r5, asl #22
  mov r2, r2, lsr #22
  tst r5, #2048
  mov r3, r5, lsr #12
  mov sl, r3, asl #4
  add r3, ip, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst r5, #1024
  beq .L3193
  cmp r6, #0
  ldr r2, [r3, #0]
  beq .L3195
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  mov lr, #0
  mov r2, r7
.L3197:
  movs  r3, r1, lsr #28
  orr r3, r8, r3
  orr r3, sl, r3
  add lr, lr, #1
  strne r3, [r2, #0]
  streq r0, [r2, #0]
  cmp r6, lr
  mov r1, r1, asl #4
  add r2, r2, #4
  bne .L3197
  add r7, r7, r6, asl #2
.L3195:
  add fp, fp, #2
  b .L3190
.L3399:
  .align  2
.L3398:
  .word io_registers
  .word map_widths
  .word vram
.L3367:
  ldrh  r1, [fp, #0]
  rsb r6, lr, #8
  tst r1, #2048
  mov r3, r1, asl #22
  ldrne r4, [sp, #4]
  mov r3, r3, lsr #22
  add sl, r2, r3, asl #6
  addne sl, sl, r4
  ands  r5, r1, #1024
  beq .L2853
  cmp lr, #3
  bhi .L3389
  subs  ip, r6, #4
  ldr r1, [sl, #4]
  beq .L2865
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov lr, r7
  mov r5, #0
.L2867:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  add r5, r5, #1
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  cmp ip, r5
  mov r1, r1, asl #8
  add lr, lr, #4
  bne .L2867
  add r3, r7, r6, asl #2
  sub r7, r3, #16
.L2865:
  ldr r1, [sl, #0]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r7, #12]
  mov r3, r1, lsr #8
  streq r0, [r7, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #8]
  mov r3, r1, lsr #16
  streq r0, [r7, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #4]
  streq r0, [r7, #4]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r7, #0]
  streq r0, [r7, #0]
.L2913:
  add r7, r7, #16
  mov r6, ip
.L2857:
  add fp, fp, #2
  b .L2850
.L3382:
  ldr r3, [sp, #12]
  rsb r4, lr, #8
  cmp r3, r4
  bcs .L2616
  ldrh  r1, [fp, #0]
  tst r1, #2048
  mov r3, r1, asl #22
  ldrne r4, [sp, #4]
  mov r3, r3, lsr #22
  add ip, r2, r3, asl #6
  addne ip, ip, r4
  tst r1, #1024
  bne .L3390
  cmp lr, #3
  bls .L2653
  ldr r4, [sp, #12]
  ldr r2, [ip, #4]
  cmp r4, #0
  beq .L3345
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L2656:
  ands  r3, r1, #255
  orr r3, r8, r3
  strne r3, [r7, #0]
  ldr r3, [sp, #12]
  add r2, r2, #1
  streq r0, [r7, #0]
  cmp r3, r2
  mov r1, r1, lsr #8
  add r7, r7, #4
  bne .L2656
  b .L3345
.L3147:
  str r0, [lr, #0]
  str r0, [lr, #4]
  str r0, [lr, #8]
  str r0, [lr, #12]
  str r0, [lr, #16]
  str r0, [lr, #20]
  str r0, [lr, #24]
  str r0, [lr, #28]
  b .L3391
.L3183:
  ands  r3, r2, #15
  orr r3, r8, r3
  orr r3, ip, r3
  add r1, r1, #1
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  cmp lr, r1
  mov r2, r2, lsr #4
  add r7, r7, #4
  bne .L3183
  b .L3345
.L3029:
  cmp lr, #3
  ldrls r2, [r2, #0]
  bhi .L3392
.L3067:
  mov r1, #0
.L3068:
  ands  r3, r2, #255
  orr r3, r8, r3
  add r1, r1, #1
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  cmp lr, r1
  mov r2, r2, lsr #8
  add r7, r7, #4
  bhi .L3068
  b .L3345
.L2804:
  cmp lr, #3
  ldrls r2, [r2, #0]
  bhi .L3393
.L2842:
  mov r1, #0
.L2843:
  ands  r3, r2, #255
  orr r3, r8, r3
  add r1, r1, #1
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  cmp lr, r1
  mov r2, r2, lsr #8
  add r7, r7, #4
  bhi .L2843
  b .L3345
.L3193:
  cmp r6, #0
  ldr r2, [r3, #0]
  beq .L3195
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  mov lr, #0
  mov r2, r7
.L3204:
  ands  r3, r1, #15
  orr r3, r8, r3
  orr r3, sl, r3
  add lr, lr, #1
  strne r3, [r2, #0]
  streq r0, [r2, #0]
  cmp r6, lr
  mov r1, r1, lsr #4
  add r2, r2, #4
  bne .L3204
  add r7, r7, r6, asl #2
  b .L3195
.L3077:
  ldrh  lr, [fp, #0]
  mov r2, lr, asl #22
  mov r2, r2, lsr #22
  tst lr, #2048
  mov r3, lr, lsr #12
  mov r4, r3, asl #4
  add r3, ip, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst lr, #1024
  bne .L3394
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L3099
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  mov lr, #0
  mov r2, r7
.L3108:
  ands  r3, r1, #15
  orr r3, r8, r3
  orr r3, r4, r3
  add lr, lr, #1
  strne r3, [r2, #0]
  streq r0, [r2, #0]
  cmp r5, lr
  mov r1, r1, lsr #4
  add r2, r2, #4
  bne .L3108
.L3360:
  add r7, r7, r5, asl #2
.L3099:
  ldr r3, [sp, #12]
  add fp, fp, #2
  rsb r3, r5, r3
  str r3, [sp, #12]
  b .L3075
.L2853:
  cmp lr, #3
  bhi .L3395
  subs  ip, r6, #4
  ldr r1, [sl, #0]
  beq .L2894
  mov r3, lr, asl #3
  mov r1, r1, lsr r3
  mov lr, r7
  mov r5, #0
.L2896:
  ands  r3, r1, #255
  orr r3, r8, r3
  add r5, r5, #1
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  cmp ip, r5
  mov r1, r1, lsr #8
  add lr, lr, #4
  bne .L2896
  add r3, r7, r6, asl #2
  sub r7, r3, #16
.L2894:
  ldr r1, [sl, #4]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r7, #0]
  mov r3, r1, lsr #8
  streq r0, [r7, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #4]
  mov r3, r1, lsr #16
  streq r0, [r7, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #8]
  streq r0, [r7, #8]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r7, #12]
  streq r0, [r7, #12]
  b .L2913
.L2616:
  ldrh  r1, [fp, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add ip, r2, r3, asl #6
  ldrne r3, [sp, #4]
  addne ip, ip, r3
  ands  r5, r1, #1024
  bne .L3396
  cmp lr, #3
  bls .L2717
  cmp r4, #0
  ldr r1, [ip, #4]
  beq .L2689
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
  mov ip, r5
  mov lr, r7
.L2720:
  ands  r3, r1, #255
  orr r3, r8, r3
  add ip, ip, #1
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  cmp r4, ip
  mov r1, r1, lsr #8
  add lr, lr, #4
  bne .L2720
.L3347:
  add r7, r7, r4, asl #2
.L2689:
  ldr r1, [sp, #12]
  add fp, fp, #2
  rsb r1, r4, r1
  str r1, [sp, #12]
  b .L2614
.L3392:
  ldr r1, [r2, #0]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r7, #0]
  mov r3, r1, lsr #8
  streq r0, [r7, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #4]
  mov r3, r1, lsr #16
  streq r0, [r7, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #8]
  streq r0, [r7, #8]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r7, #12]
  streq r0, [r7, #12]
  subs  lr, lr, #4
  ldr r2, [r2, #4]
  addne r7, r7, #16
  bne .L3067
  b .L3345
.L3372:
  ldr r1, [r2, #4]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r7, #12]
  mov r3, r1, lsr #8
  streq r0, [r7, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #8]
  mov r3, r1, lsr #16
  streq r0, [r7, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #4]
  streq r0, [r7, #4]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  subs  lr, lr, #4
  ldr r2, [r2, #0]
  addne r7, r7, #16
  bne .L3046
  b .L3345
.L3385:
  ldr r1, [r2, #4]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r7, #12]
  mov r3, r1, lsr #8
  streq r0, [r7, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #8]
  mov r3, r1, lsr #16
  streq r0, [r7, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #4]
  streq r0, [r7, #4]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  subs  lr, lr, #4
  ldr r2, [r2, #0]
  addne r7, r7, #16
  bne .L2821
  b .L3345
.L3393:
  ldr r1, [r2, #0]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r7, #0]
  mov r3, r1, lsr #8
  streq r0, [r7, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #4]
  mov r3, r1, lsr #16
  streq r0, [r7, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #8]
  streq r0, [r7, #8]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r7, #12]
  streq r0, [r7, #12]
  subs  lr, lr, #4
  ldr r2, [r2, #4]
  addne r7, r7, #16
  bne .L2842
  b .L3345
.L3389:
  cmp r6, #0
  ldr r1, [sl, #0]
  beq .L2857
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov lr, r7
  mov r5, #0
.L2859:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  add r5, r5, #1
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  cmp r6, r5
  mov r1, r1, asl #8
  add lr, lr, #4
  bne .L2859
  add r7, r7, r6, asl #2
.L3397:
  add fp, fp, #2
  b .L2850
.L3388:
  ldr r4, [sp, #12]
  ldr ip, [ip, #0]
  cmp r4, #0
  beq .L3345
  mov r3, r1, asl #2
  mov r1, ip, asl r3
  mov ip, #0
.L3084:
  movs  r3, r1, lsr #28
  orr r3, r8, r3
  orr r3, r2, r3
  strne r3, [r7, #0]
  ldr r3, [sp, #12]
  add ip, ip, #1
  streq r0, [r7, #0]
  cmp r3, ip
  mov r1, r1, asl #4
  add r7, r7, #4
  bne .L3084
  b .L3345
.L3396:
  cmp lr, #3
  bls .L2687
  cmp r4, #0
  ldr r1, [ip, #0]
  beq .L2689
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov lr, r7
  mov r5, #0
.L2691:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  add r5, r5, #1
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  cmp r4, r5
  mov r1, r1, asl #8
  add lr, lr, #4
  bne .L2691
  b .L3347
.L3394:
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L3099
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  mov lr, #0
  mov r2, r7
.L3101:
  movs  r3, r1, lsr #28
  orr r3, r8, r3
  orr r3, r4, r3
  add lr, lr, #1
  strne r3, [r2, #0]
  streq r0, [r2, #0]
  cmp r5, lr
  mov r1, r1, asl #4
  add r2, r2, #4
  bne .L3101
  b .L3360
.L3390:
  cmp lr, #3
  bls .L2622
  ldr r1, [sp, #12]
  ldr r2, [ip, #0]
  cmp r1, #0
  beq .L3345
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r2, asl r3
  mov r2, #0
.L2626:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  strne r3, [r7, #0]
  ldr r3, [sp, #12]
  add r2, r2, #1
  streq r0, [r7, #0]
  cmp r3, r2
  mov r1, r1, asl #8
  add r7, r7, #4
  bne .L2626
  b .L3345
.L3395:
  cmp r6, #0
  ldr r1, [sl, #4]
  beq .L2857
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
  mov lr, r7
.L2888:
  ands  r3, r1, #255
  orr r3, r8, r3
  add r5, r5, #1
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  cmp r6, r5
  mov r1, r1, lsr #8
  add lr, lr, #4
  bne .L2888
  add r7, r7, r6, asl #2
  b .L3397
.L2622:
  ldr r4, [sp, #12]
  mov r3, lr, asl #3
  ldr r1, [ip, #4]
  add r2, r4, lr
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L2631
  cmp r4, #0
  movne r2, #0
  beq .L3345
.L2648:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  strne r3, [r7, #0]
  ldr r3, [sp, #12]
  add r2, r2, #1
  streq r0, [r7, #0]
  cmp r3, r2
  mov r1, r1, asl #8
  add r7, r7, #4
  bne .L2648
  b .L3345
.L2687:
  subs  r6, r4, #4
  ldr r1, [ip, #4]
  beq .L2697
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov lr, r7
  mov r5, #0
.L2699:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  add r5, r5, #1
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  cmp r6, r5
  mov r1, r1, asl #8
  add lr, lr, #4
  bne .L2699
  add r3, r7, r4, asl #2
  sub r7, r3, #16
.L2697:
  ldr r1, [ip, #0]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r7, #12]
  mov r3, r1, lsr #8
  streq r0, [r7, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #8]
  mov r3, r1, lsr #16
  streq r0, [r7, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #4]
  streq r0, [r7, #4]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r7, #0]
  streq r0, [r7, #0]
.L2745:
  add r7, r7, #16
  b .L2689
.L2653:
  ldr r4, [sp, #12]
  ldr r3, [ip, #0]
  add r2, r4, lr
  cmp r2, #4
  mov r1, lr, asl #3
  mov r2, r3, lsr r1
  bhi .L2661
  cmp r4, #0
  movne r1, #0
  beq .L3345
.L2678:
  ands  r3, r2, #255
  orr r3, r8, r3
  strne r3, [r7, #0]
  ldr r3, [sp, #12]
  add r1, r1, #1
  streq r0, [r7, #0]
  cmp r3, r1
  mov r2, r2, lsr #8
  add r7, r7, #4
  bne .L2678
  b .L3345
.L2717:
  subs  r6, r4, #4
  ldr r1, [ip, #0]
  beq .L2726
  mov r3, lr, asl #3
  mov r1, r1, lsr r3
  mov lr, r7
  mov r5, #0
.L2728:
  ands  r3, r1, #255
  orr r3, r8, r3
  add r5, r5, #1
  strne r3, [lr, #0]
  streq r0, [lr, #0]
  cmp r6, r5
  mov r1, r1, lsr #8
  add lr, lr, #4
  bne .L2728
  add r3, r7, r4, asl #2
  sub r7, r3, #16
.L2726:
  ldr r1, [ip, #4]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r7, #0]
  mov r3, r1, lsr #8
  streq r0, [r7, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #4]
  mov r3, r1, lsr #16
  streq r0, [r7, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r7, #8]
  streq r0, [r7, #8]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r7, #12]
  bne .L2745
  str r0, [r7, #12]
  add r7, r7, #16
  b .L2689
.L2631:
  rsbs  r4, lr, #4
  beq .L2634
  mov r2, r7
  mov lr, #0
.L2636:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  add lr, lr, #1
  strne r3, [r2, #0]
  streq r0, [r2, #0]
  cmp r4, lr
  mov r1, r1, asl #8
  add r2, r2, #4
  bne .L2636
  add r7, r7, r4, asl #2
.L2634:
  ldr r1, [sp, #12]
  ldr r2, [ip, #0]
  subs  lr, r1, r4
  beq .L3345
  mov r1, #0
.L2643:
  movs  r3, r2, lsr #24
  orr r3, r8, r3
  add r1, r1, #1
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  cmp lr, r1
  mov r2, r2, asl #8
  add r7, r7, #4
  bne .L2643
  b .L3345
.L2661:
  rsbs  r4, lr, #4
  beq .L2664
  mov r1, r7
  mov lr, #0
.L2666:
  ands  r3, r2, #255
  orr r3, r8, r3
  add lr, lr, #1
  strne r3, [r1, #0]
  streq r0, [r1, #0]
  cmp r4, lr
  mov r2, r2, lsr #8
  add r1, r1, #4
  bne .L2666
  add r7, r7, r4, asl #2
.L2664:
  ldr r1, [sp, #12]
  ldr r2, [ip, #4]
  subs  lr, r1, r4
  beq .L3345
  mov r1, #0
.L2673:
  ands  r3, r2, #255
  orr r3, r8, r3
  add r1, r1, #1
  strne r3, [r7, #0]
  streq r0, [r7, #0]
  cmp lr, r1
  mov r2, r2, lsr #8
  add r7, r7, #4
  bne .L2673
  b .L3345
  .size render_scanline_text_base_color32, .-render_scanline_text_base_color32
  .align  2
  .global render_scanline_text_transparent_color32
  .type render_scanline_text_transparent_color32, %function
render_scanline_text_transparent_color32:
  @ args = 0, pretend = 0, frame = 4
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr ip, .L4043
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldrh  lr, [ip, #80]
  add r6, r0, #7
  mov r6, lr, asr r6
  mov lr, lr, asr r0
  add r7, ip, r0, asl #2
  ldrh  r5, [ip, #6]
  ldrh  r4, [r7, #18]
  add ip, ip, r0, asl #1
  add sl, r5, r4
  ldrh  r8, [ip, #8]
  mov r5, sl, asl #23
  mov r5, r5, lsr #23
  ldrh  r4, [r7, #16]
  cmp r5, #255
  movls ip, #0
  movhi ip, #1
  mov r7, r8, lsr #14
  rsb fp, r1, r2
  ldr r2, .L4043+4
  ands  ip, ip, r7, lsr #1
  ldr r2, [r2, r7, asl #2]
  add ip, r3, r1, asl #2
  mov r0, r8, asl #3
  subne r3, r5, #256
  ldr r9, .L4043+8
  movne r3, r3, lsr #3
  moveq r3, sl, asl #3
  add r4, r4, r1
  and r0, r0, #63488
  add r0, r0, r9
  addne r3, r3, r2, lsr #3
  andeq r3, r3, #1984
  mov r4, r4, asl #23
  addne r0, r0, r3, asl #6
  addeq r0, r0, r3
  mov r4, r4, lsr #23
  tst r7, #1
  and lr, lr, #1
  and r6, r6, #2
  andeq r4, r4, #255
  sub sp, sp, #4
  orr lr, lr, r6
  moveq r3, r4, lsr #3
  mov lr, lr, asl #9
  addeq r7, r0, r3, asl #1
  streq r0, [sp, #0]
  beq .L3408
  cmp r4, #255
  subhi r4, r4, #256
  movhi r3, r4, lsr #3
  movls r3, r4, lsr #3
  addhi r3, r0, r3, asl #1
  addls r7, r0, r3, asl #1
  addls r0, r0, #2048
  addhi r7, r3, #2048
  strhi r0, [sp, #0]
  strls r0, [sp, #0]
.L3408:
  tst r8, #128
  beq .L3409
  and r1, r4, #255
  and r3, r5, #7
  mov r2, r8, asl #12
  mov r3, r3, asl #3
  and r2, r2, #49152
  rsb r0, r1, #256
  add r2, r2, r3
  cmp fp, r0
  mov r3, r3, asl #1
  add r2, r2, r9
  and r4, r4, #7
  rsb r9, r3, #56
  bls .L4018
  cmp r4, #0
  moveq r6, r4
  bne .L4019
.L3611:
  rsb r3, r6, r0
  movs  sl, r3, lsr #3
  beq .L3665
  mov r6, ip
  mov r8, #0
  b .L3667
.L4020:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L3672
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r6, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #4]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [r6, #0]
.L3672:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L3681
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r6, #28]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #24]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #20]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [r6, #16]
.L3681:
  add r8, r8, #1
  cmp sl, r8
  add r6, r6, #32
  beq .L3707
.L4021:
  add r7, r7, #2
.L3667:
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r4, r2, r3, asl #6
  addne r4, r4, r9
  tst r1, #1024
  bne .L4020
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L3690
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r6, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #8]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [r6, #12]
.L3690:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L3681
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r6, #16]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #20]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #24]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  add r8, r8, #1
  strne r3, [r6, #28]
  cmp sl, r8
  add r6, r6, #32
  bne .L4021
.L3707:
  add ip, ip, sl, asl #5
.L3665:
  rsb sl, r0, fp
  movs  r0, sl, lsr #3
  ldreq r0, [sp, #0]
  beq .L3711
  ldr r7, [sp, #0]
  mov r6, ip
  mov r8, #0
  b .L3712
.L4023:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L3717
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r6, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #4]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [r6, #0]
.L3717:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L3726
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r6, #28]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #24]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #20]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [r6, #16]
.L3726:
  add r8, r8, #1
  cmp r0, r8
  add r6, r6, #32
  add r7, r7, #2
  beq .L4022
.L3712:
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r4, r2, r3, asl #6
  addne r4, r4, r9
  tst r1, #1024
  bne .L4023
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L3735
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r6, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #8]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [r6, #12]
.L3735:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L3726
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r6, #16]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #20]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r6, #24]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  add r8, r8, #1
  strne r3, [r6, #28]
  cmp r0, r8
  add r6, r6, #32
  add r7, r7, #2
  bne .L3712
.L4022:
  ldr r3, [sp, #0]
  add ip, ip, r0, asl #5
  add r0, r3, r0, asl #1
.L3711:
  ands  r4, sl, #7
  beq .L4000
  ldrh  r0, [r0, #0]
  mov r3, r0, asl #22
  mov r3, r3, lsr #22
  tst r0, #2048
  add r2, r2, r3, asl #6
  addne r2, r2, r9
  tst r0, #1024
  beq .L3756
  cmp r4, #3
  ldrls r0, [r2, #4]
  bls .L3770
  ldr r1, [r2, #4]
  cmp r1, #0
  beq .L3760
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [ip, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #4]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [ip, #0]
.L3760:
  subs  r4, r4, #4
  ldr r0, [r2, #0]
  addne ip, ip, #16
  beq .L4000
.L3770:
  mov r1, #0
.L3771:
  movs  r3, r0, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r4
  mov r0, r0, asl #8
  bcc .L3771
.L4000:
  add sp, sp, #4
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L3409:
  and r3, r5, #7
  and r1, r4, #255
  mov r2, r8, asl #12
  mov r3, r3, asl #2
  rsb r5, r1, #256
  and r2, r2, #49152
  add r2, r2, r3
  cmp fp, r5
  mov r3, r3, asl #1
  add sl, r2, r9
  and r1, r4, #7
  rsb r9, r3, #28
  bls .L4024
  cmp r1, #0
  moveq r4, r1
  bne .L4025
.L3885:
  rsb r3, r4, r5
  movs  r0, r3, lsr #3
  beq .L3903
  mov r4, ip
  mov r8, #0
  b .L3905
.L4026:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3910
  ands  r3, r2, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  movs  r3, r2, lsr #28
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
.L3910:
  add r8, r8, #1
  cmp r0, r8
  add r4, r4, #32
  beq .L3943
.L4027:
  add r7, r7, #2
.L3905:
  ldrh  r1, [r7, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r6, r3, asl #4
  add r3, sl, r2, asl #5
  addne r3, r3, r9
  tst r1, #1024
  bne .L4026
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3910
  ands  r3, r2, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  movs  r3, r2, lsr #28
  orrne r3, lr, r3
  orrne r3, r6, r3
  add r8, r8, #1
  strne r3, [r4, #28]
  cmp r0, r8
  add r4, r4, #32
  bne .L4027
.L3943:
  add ip, ip, r0, asl #5
.L3903:
  rsb fp, r5, fp
  movs  r0, fp, lsr #3
  ldreq r0, [sp, #0]
  beq .L3947
  ldr r7, [sp, #0]
  mov r4, ip
  mov r8, #0
  b .L3948
.L4029:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3953
  ands  r3, r2, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  movs  r3, r2, lsr #28
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
.L3953:
  add r8, r8, #1
  cmp r0, r8
  add r4, r4, #32
  add r7, r7, #2
  beq .L4028
.L3948:
  ldrh  r1, [r7, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r6, r3, asl #4
  add r3, sl, r2, asl #5
  addne r3, r3, r9
  tst r1, #1024
  bne .L4029
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3953
  ands  r3, r2, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  movs  r3, r2, lsr #28
  orrne r3, lr, r3
  orrne r3, r6, r3
  add r8, r8, #1
  strne r3, [r4, #28]
  cmp r0, r8
  add r4, r4, #32
  add r7, r7, #2
  bne .L3948
.L4028:
  ldr r3, [sp, #0]
  add ip, ip, r0, asl #5
  add r0, r3, r0, asl #1
.L3947:
  ands  r4, fp, #7
  beq .L4000
  ldrh  r0, [r0, #0]
  mov r3, r0, asl #22
  mov r3, r3, lsr #22
  tst r0, #2048
  add r3, sl, r3, asl #5
  mov r2, r0, lsr #12
  addne r3, r3, r9
  tst r0, #1024
  mov r2, r2, asl #4
  ldreq r0, [r3, #0]
  moveq r1, #0
  beq .L3996
  ldr r0, [r3, #0]
  mov r1, #0
.L3992:
  movs  r3, r0, lsr #28
  orr r3, lr, r3
  orr r3, r2, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r4, r1
  mov r0, r0, asl #4
  bne .L3992
  b .L4000
.L4024:
  cmp r1, #0
  bne .L4030
.L3794:
  movs  r0, fp, lsr #3
  beq .L3829
  mov r4, ip
  mov r6, r7
  mov r8, #0
  b .L3831
.L4032:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3836
  ands  r3, r2, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #28]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #24]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #4]
  movs  r3, r2, lsr #28
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #0]
.L3836:
  add r8, r8, #1
  cmp r0, r8
  add r4, r4, #32
  add r6, r6, #2
  beq .L4031
.L3831:
  ldrh  r1, [r6, #0]
  mov r2, r1, asl #22
  mov r3, r1, lsr #12
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r5, r3, asl #4
  add r3, sl, r2, asl #5
  addne r3, r3, r9
  tst r1, #1024
  bne .L4032
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L3836
  ands  r3, r2, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, lr, r3
  orrne r3, r5, r3
  strne r3, [r4, #24]
  movs  r3, r2, lsr #28
  orrne r3, lr, r3
  orrne r3, r5, r3
  add r8, r8, #1
  strne r3, [r4, #28]
  cmp r0, r8
  add r4, r4, #32
  add r6, r6, #2
  bne .L3831
.L4031:
  add ip, ip, r0, asl #5
  add r7, r7, r0, asl #1
.L3829:
  ands  r4, fp, #7
  beq .L4000
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r0, sl, r3, asl #5
  mov r2, r1, lsr #12
  addne r0, r0, r9
  tst r1, #1024
  mov r2, r2, asl #4
  ldreq r0, [r0, #0]
  moveq r1, #0
  beq .L3879
  ldr r0, [r0, #0]
  mov r1, #0
.L3875:
  movs  r3, r0, lsr #28
  orr r3, lr, r3
  orr r3, r2, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r4, r1
  mov r0, r0, asl #4
  bne .L3875
  b .L4000
.L4018:
  cmp r4, #0
  bne .L4033
.L3413:
  movs  sl, fp, lsr #3
  beq .L3527
  mov r5, ip
  mov r6, r7
  mov r8, #0
  b .L3529
.L4035:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L3534
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r5, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r5, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r5, #4]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [r5, #0]
.L3534:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L3543
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r5, #28]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r5, #24]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r5, #20]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [r5, #16]
.L3543:
  add r8, r8, #1
  cmp sl, r8
  add r5, r5, #32
  add r6, r6, #2
  beq .L4034
.L3529:
  ldrh  r1, [r6, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r4, r2, r3, asl #6
  addne r4, r4, r9
  tst r1, #1024
  bne .L4035
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L3552
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r5, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r5, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r5, #8]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [r5, #12]
.L3552:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L3543
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [r5, #16]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r5, #20]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [r5, #24]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  add r8, r8, #1
  strne r3, [r5, #28]
  cmp sl, r8
  add r5, r5, #32
  add r6, r6, #2
  bne .L3529
.L4034:
  add ip, ip, sl, asl #5
  add r7, r7, sl, asl #1
.L3527:
  ands  r4, fp, #7
  beq .L4000
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r0, r2, r3, asl #6
  addne r0, r0, r9
  tst r1, #1024
  beq .L3573
  cmp r4, #3
  ldrls r0, [r0, #4]
  bls .L3587
  ldr r1, [r0, #4]
  cmp r1, #0
  beq .L3577
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [ip, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #4]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [ip, #0]
.L3577:
  subs  r4, r4, #4
  ldr r0, [r0, #0]
  addne ip, ip, #16
  beq .L4000
.L3587:
  mov r1, #0
.L3588:
  movs  r3, r0, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r4, r1
  mov r0, r0, asl #8
  bhi .L3588
  b .L4000
.L3996:
  ands  r3, r0, #15
  orr r3, lr, r3
  orr r3, r2, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r4, r1
  mov r0, r0, lsr #4
  beq .L4000
  ands  r3, r0, #15
  orr r3, lr, r3
  orr r3, r2, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r4, r1
  mov r0, r0, lsr #4
  bne .L3996
  b .L4000
.L4030:
  rsb r5, r1, #8
  cmp fp, r5
  bcs .L3796
  ldrh  r4, [r7, #0]
  mov r3, r4, asl #22
  mov r3, r3, lsr #22
  tst r4, #2048
  add r0, sl, r3, asl #5
  mov r2, r4, lsr #12
  addne r0, r0, r9
  tst r4, #1024
  mov r2, r2, asl #4
  bne .L4036
  cmp fp, #0
  ldr r0, [r0, #0]
  beq .L4000
  mov r3, r1, asl #2
  mov r0, r0, lsr r3
  mov r1, #0
.L3808:
  ands  r3, r0, #15
  orr r3, lr, r3
  orr r3, r2, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp fp, r1
  mov r0, r0, lsr #4
  bne .L3808
  b .L4000
.L4025:
  ldrh  r6, [r7, #0]
  rsb r4, r1, #8
  mov r2, r6, asl #22
  mov r3, r6, lsr #12
  mov r2, r2, lsr #22
  tst r6, #2048
  mov r8, r3, asl #4
  add r3, sl, r2, asl #5
  addne r3, r3, r9
  tst r6, #1024
  beq .L3888
  cmp r4, #0
  ldr r2, [r3, #0]
  beq .L3890
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  mov r2, #0
.L3892:
  movs  r3, r1, lsr #28
  orr r3, lr, r3
  orr r3, r8, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r4, r2
  mov r1, r1, asl #4
  bne .L3892
  add ip, ip, r4, asl #2
.L3890:
  add r7, r7, #2
  b .L3885
.L4019:
  ldrh  r1, [r7, #0]
  rsb r6, r4, #8
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r8, r2, r3, asl #6
  addne r8, r8, r9
  ands  sl, r1, #1024
  beq .L3614
  cmp r4, #3
  bhi .L4037
  subs  r5, r6, #4
  ldr r1, [r8, #4]
  beq .L3625
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r4, #0
.L3627:
  movs  r3, r1, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r4, asl #2]
  add r4, r4, #1
  cmp r5, r4
  mov r1, r1, asl #8
  bne .L3627
  add r3, ip, r6, asl #2
  sub ip, r3, #16
.L3625:
  ldr r1, [r8, #0]
  cmp r1, #0
  beq .L3656
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [ip, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #4]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [ip, #0]
.L3656:
  add ip, ip, #16
  mov r6, r5
.L3618:
  add r7, r7, #2
  b .L3611
.L4033:
  rsb r0, r4, #8
  cmp fp, r0
  bcs .L3415
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r0, r2, r3, asl #6
  addne r0, r0, r9
  tst r1, #1024
  bne .L4038
  cmp r4, #3
  bls .L3448
  cmp fp, #0
  ldr r0, [r0, #4]
  beq .L4000
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r0, r0, lsr r3
  mov r2, #0
.L3451:
  ands  r3, r0, #255
  orr r3, lr, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp fp, r2
  mov r0, r0, lsr #8
  bne .L3451
  b .L4000
.L3879:
  ands  r3, r0, #15
  orr r3, lr, r3
  orr r3, r2, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r4, r1
  mov r0, r0, lsr #4
  beq .L4000
  ands  r3, r0, #15
  orr r3, lr, r3
  orr r3, r2, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r4, r1
  mov r0, r0, lsr #4
  bne .L3879
  b .L4000
.L4044:
  .align  2
.L4043:
  .word io_registers
  .word map_widths
  .word vram
.L3756:
  cmp r4, #3
  ldrls r0, [r2, #0]
  bls .L3787
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L3777
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [ip, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #8]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [ip, #12]
.L3777:
  subs  r4, r4, #4
  ldr r0, [r2, #4]
  addne ip, ip, #16
  beq .L4000
.L3787:
  mov r1, #0
.L3788:
  ands  r3, r0, #255
  orr r3, lr, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r4
  mov r0, r0, lsr #8
  bcc .L3788
  b .L4000
.L3573:
  cmp r4, #3
  ldrls r0, [r0, #0]
  bls .L3604
  ldr r1, [r0, #0]
  cmp r1, #0
  beq .L3594
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [ip, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #8]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [ip, #12]
.L3594:
  subs  r4, r4, #4
  ldr r0, [r0, #4]
  addne ip, ip, #16
  beq .L4000
.L3604:
  mov r1, #0
.L3605:
  ands  r3, r0, #255
  orr r3, lr, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r4, r1
  mov r0, r0, lsr #8
  bhi .L3605
  b .L4000
.L3796:
  ldrh  r4, [r7, #0]
  mov r2, r4, asl #22
  mov r3, r4, lsr #12
  mov r2, r2, lsr #22
  tst r4, #2048
  mov r0, r3, asl #4
  add r3, sl, r2, asl #5
  addne r3, r3, r9
  tst r4, #1024
  bne .L4039
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L3816
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  mov r2, #0
.L3824:
  ands  r3, r1, #15
  orr r3, lr, r3
  orr r3, r0, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r5, r2
  mov r1, r1, lsr #4
  bne .L3824
.L4015:
  add ip, ip, r5, asl #2
.L3816:
  rsb fp, r5, fp
  add r7, r7, #2
  b .L3794
.L3888:
  cmp r4, #0
  ldr r2, [r3, #0]
  beq .L3890
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  mov r2, #0
.L3898:
  ands  r3, r1, #15
  orr r3, lr, r3
  orr r3, r8, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r4, r2
  mov r1, r1, lsr #4
  bne .L3898
  add ip, ip, r4, asl #2
  b .L3890
.L3614:
  cmp r4, #3
  bhi .L4040
  subs  r5, r6, #4
  ldr r1, [r8, #0]
  beq .L3649
  mov r3, r4, asl #3
  mov r1, r1, lsr r3
  mov r4, #0
.L3651:
  ands  r3, r1, #255
  orr r3, lr, r3
  strne r3, [ip, r4, asl #2]
  add r4, r4, #1
  cmp r5, r4
  mov r1, r1, lsr #8
  bne .L3651
  add r3, ip, r6, asl #2
  sub ip, r3, #16
.L3649:
  ldr r1, [r8, #4]
  cmp r1, #0
  beq .L3656
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [ip, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #8]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [ip, #12]
  b .L3656
.L3415:
  ldrh  r1, [r7, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r5, r2, r3, asl #6
  addne r5, r5, r9
  ands  r6, r1, #1024
  bne .L4041
  cmp r4, #3
  bls .L3503
  cmp r0, #0
  ldr r1, [r5, #4]
  beq .L3480
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
  mov r4, r6
.L3506:
  ands  r3, r1, #255
  orr r3, lr, r3
  strne r3, [ip, r4, asl #2]
  add r4, r4, #1
  cmp r0, r4
  mov r1, r1, lsr #8
  bne .L3506
.L4002:
  add ip, ip, r0, asl #2
.L3480:
  rsb fp, r0, fp
  add r7, r7, #2
  b .L3413
.L4037:
  cmp r6, #0
  ldr r1, [r8, #0]
  beq .L3618
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r4, #0
.L3620:
  movs  r3, r1, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r4, asl #2]
  add r4, r4, #1
  cmp r6, r4
  mov r1, r1, asl #8
  bne .L3620
  add ip, ip, r6, asl #2
.L4042:
  add r7, r7, #2
  b .L3611
.L4036:
  cmp fp, #0
  ldr r0, [r0, #0]
  beq .L4000
  mov r3, r1, asl #2
  mov r0, r0, asl r3
  mov r1, #0
.L3803:
  movs  r3, r0, lsr #28
  orr r3, lr, r3
  orr r3, r2, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp fp, r1
  mov r0, r0, asl #4
  bne .L3803
  b .L4000
.L4041:
  cmp r4, #3
  bls .L3478
  cmp r0, #0
  ldr r1, [r5, #0]
  beq .L3480
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r4, #0
.L3482:
  movs  r3, r1, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r4, asl #2]
  add r4, r4, #1
  cmp r0, r4
  mov r1, r1, asl #8
  bne .L3482
  b .L4002
.L4039:
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L3816
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  mov r2, #0
.L3818:
  movs  r3, r1, lsr #28
  orr r3, lr, r3
  orr r3, r0, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r5, r2
  mov r1, r1, asl #4
  bne .L3818
  b .L4015
.L4038:
  cmp r4, #3
  bls .L3421
  cmp fp, #0
  ldr r0, [r0, #0]
  beq .L4000
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r0, r0, asl r3
  mov r2, #0
.L3425:
  movs  r3, r0, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp fp, r2
  mov r0, r0, asl #8
  bne .L3425
  b .L4000
.L4040:
  cmp r6, #0
  ldr r1, [r8, #4]
  beq .L3618
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
  mov r4, sl
.L3644:
  ands  r3, r1, #255
  orr r3, lr, r3
  strne r3, [ip, r4, asl #2]
  add r4, r4, #1
  cmp r6, r4
  mov r1, r1, lsr #8
  bne .L3644
  add ip, ip, r6, asl #2
  b .L4042
.L3421:
  mov r3, r4, asl #3
  ldr r1, [r0, #4]
  add r2, fp, r4
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L3429
  cmp fp, #0
  movne r2, #0
  beq .L4000
.L3444:
  movs  r3, r1, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp fp, r2
  mov r1, r1, asl #8
  bne .L3444
  b .L4000
.L3478:
  subs  r6, r0, #4
  ldr r1, [r5, #4]
  beq .L3487
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r4, #0
.L3489:
  movs  r3, r1, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r4, asl #2]
  add r4, r4, #1
  cmp r6, r4
  mov r1, r1, asl #8
  bne .L3489
  add r3, ip, r0, asl #2
  sub ip, r3, #16
.L3487:
  ldr r1, [r5, #0]
  cmp r1, #0
  beq .L3518
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [ip, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #4]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [ip, #0]
.L3518:
  add ip, ip, #16
  b .L3480
.L3448:
  add r2, fp, r4
  ldr r3, [r0, #0]
  cmp r2, #4
  mov r1, r4, asl #3
  mov r2, r3, lsr r1
  bhi .L3455
  cmp fp, #0
  movne r1, #0
  beq .L4000
.L3470:
  ands  r3, r2, #255
  orr r3, lr, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp fp, r1
  mov r2, r2, lsr #8
  bne .L3470
  b .L4000
.L3503:
  subs  r6, r0, #4
  ldr r1, [r5, #0]
  beq .L3511
  mov r3, r4, asl #3
  mov r1, r1, lsr r3
  mov r4, #0
.L3513:
  ands  r3, r1, #255
  orr r3, lr, r3
  strne r3, [ip, r4, asl #2]
  add r4, r4, #1
  cmp r6, r4
  mov r1, r1, lsr #8
  bne .L3513
  add r3, ip, r0, asl #2
  sub ip, r3, #16
.L3511:
  ldr r1, [r5, #4]
  cmp r1, #0
  beq .L3518
  ands  r3, r1, #255
  orrne r3, lr, r3
  strne r3, [ip, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  orrne r3, lr, r3
  strne r3, [ip, #8]
  movs  r3, r1, lsr #24
  orrne r3, lr, r3
  strne r3, [ip, #12]
  add ip, ip, #16
  b .L3480
.L3429:
  rsbs  r4, r4, #4
  beq .L3432
  mov r2, #0
.L3434:
  movs  r3, r1, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r4, r2
  mov r1, r1, asl #8
  bne .L3434
  add ip, ip, r4, asl #2
.L3432:
  subs  r1, fp, r4
  ldr r0, [r0, #0]
  beq .L4000
  mov r2, #0
.L3440:
  movs  r3, r0, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r1, r2
  mov r0, r0, asl #8
  bne .L3440
  b .L4000
.L3455:
  rsbs  r4, r4, #4
  beq .L3458
  mov r1, #0
.L3460:
  ands  r3, r2, #255
  orr r3, lr, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r4, r1
  mov r2, r2, lsr #8
  bne .L3460
  add ip, ip, r4, asl #2
.L3458:
  subs  r1, fp, r4
  ldr r0, [r0, #4]
  beq .L4000
  mov r2, #0
.L3466:
  ands  r3, r0, #255
  orr r3, lr, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r1, r2
  mov r0, r0, lsr #8
  bne .L3466
  b .L4000
  .size render_scanline_text_transparent_color32, .-render_scanline_text_transparent_color32
  .align  2
  .global render_scanline_text_base_alpha
  .type render_scanline_text_base_alpha, %function
render_scanline_text_base_alpha:
  @ args = 0, pretend = 0, frame = 16
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r7, .L4840
  add lr, r0, #7
  ldrh  ip, [r7, #80]
  sub sp, sp, #16
  mov lr, ip, asr lr
  mov r4, ip, asr r0
  mov r5, ip, lsr #12
  and r5, r5, #2
  mov ip, ip, asl #26
  orr r5, r5, ip, lsr #31
  and lr, lr, #2
  and r4, r4, #1
  orr r4, r4, lr
  mov ip, r5, asl #25
  orr r8, ip, r4, asl #9
  tst r8, #512
  mov r6, r0
  mov lr, r1
  mov r9, r2
  mov fp, r3
  mov r5, r5, asl #9
  beq .L4813
  add r0, r7, r0, asl #2
  ldrh  r1, [r7, #6]
  ldrh  r3, [r0, #18]
  add r2, r7, r6, asl #1
  add sl, r1, r3
  ldrh  r3, [r0, #16]
  ldrh  r7, [r2, #8]
  mov r6, sl, asl #23
  mov r6, r6, lsr #23
  add r3, r3, lr
  mov r4, r7, lsr #14
  cmp r6, #255
  movls r1, #0
  movhi r1, #1
  mov ip, r3, asl #23
  ldr r3, .L4840+4
  ands  r1, r1, r4, lsr #1
  mov r2, r7, asl #3
  ldr r1, [r3, r4, asl #2]
  ldr r0, .L4840+8
  subne r3, r6, #256
  movne r3, r3, lsr #3
  moveq r3, sl, asl #3
  and r2, r2, #63488
  addne r3, r3, r1, lsr #3
  andeq r3, r3, #1984
  add r2, r2, r0
  addne r1, r2, r3, asl #6
  addeq r1, r2, r3
  mov ip, ip, lsr #23
  tst r4, #1
  andeq ip, ip, #255
  rsb r9, lr, r9
  moveq r3, ip, lsr #3
  str r9, [sp, #12]
  addeq sl, r1, r3, asl #1
  add r9, fp, lr, asl #2
  streq r1, [sp, #0]
  bne .L4814
  tst r7, #128
  bne .L4815
.L4056:
  and r1, ip, #255
  and r3, r6, #7
  mov r2, r7, asl #12
  mov r3, r3, asl #2
  rsb fp, r1, #256
  and r2, r2, #49152
  ldr r1, [sp, #12]
  add r2, r2, r3
  mov r3, r3, asl #1
  cmp r1, fp
  rsb r3, r3, #28
  add r0, r2, r0
  str r3, [sp, #8]
  and r1, ip, #7
  bls .L4816
  cmp r1, #0
  moveq r4, r1
  beq .L4636
  ldrh  ip, [sl, #0]
  rsb r4, r1, #8
  mov r2, ip, asl #22
  mov r2, r2, lsr #22
  tst ip, #2048
  mov r3, ip, lsr #12
  mov lr, r3, asl #4
  add r3, r0, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst ip, #1024
  bne .L4817
  cmp r4, #0
  ldr r2, [r3, #0]
  beq .L4641
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  mov ip, #0
  mov r2, r9
.L4650:
  ands  r3, r1, #15
  orr r3, r8, r3
  orr r3, lr, r3
  add ip, ip, #1
  strne r3, [r2, #0]
  streq r5, [r2, #0]
  cmp r4, ip
  mov r1, r1, lsr #4
  add r2, r2, #4
  bne .L4650
  add r9, r9, r4, asl #2
.L4641:
  add sl, sl, #2
.L4636:
  rsb r3, r4, fp
  movs  r1, r3, lsr #3
  beq .L4656
  mov r4, r9
  mov r7, #0
  b .L4658
.L4818:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L4689
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  mov r3, r2, lsr #4
  streq r5, [r4, #28]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  mov r3, r2, lsr #8
  streq r5, [r4, #24]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #12
  streq r5, [r4, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #16
  streq r5, [r4, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #20
  streq r5, [r4, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #24
  streq r5, [r4, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  streq r5, [r4, #4]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
  streq r5, [r4, #0]
.L4688:
  add r7, r7, #1
  cmp r1, r7
  add r4, r4, #32
  beq .L4714
.L4819:
  add sl, sl, #2
.L4658:
  ldrh  ip, [sl, #0]
  mov r2, ip, asl #22
  mov r2, r2, lsr #22
  tst ip, #2048
  mov r3, ip, lsr #12
  mov r6, r3, asl #4
  add r3, r0, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst ip, #1024
  bne .L4818
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L4689
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
  mov r3, r2, lsr #4
  streq r5, [r4, #0]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  mov r3, r2, lsr #8
  streq r5, [r4, #4]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #12
  streq r5, [r4, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #16
  streq r5, [r4, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #20
  streq r5, [r4, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #24
  streq r5, [r4, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  streq r5, [r4, #24]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  bne .L4688
  str r5, [r4, #28]
.L4836:
  add r7, r7, #1
  cmp r1, r7
  add r4, r4, #32
  bne .L4819
.L4714:
  add r9, r9, r1, asl #5
.L4656:
  ldr r3, [sp, #12]
  rsb lr, fp, r3
  movs  r1, lr, lsr #3
  ldreq r1, [sp, #0]
  beq .L4718
  ldr r7, [sp, #0]
  mov r4, r9
  mov sl, #0
  b .L4719
.L4821:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L4750
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  mov r3, r2, lsr #4
  streq r5, [r4, #28]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  mov r3, r2, lsr #8
  streq r5, [r4, #24]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #12
  streq r5, [r4, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #16
  streq r5, [r4, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #20
  streq r5, [r4, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #24
  streq r5, [r4, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  streq r5, [r4, #4]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
  streq r5, [r4, #0]
.L4749:
  add sl, sl, #1
  cmp r1, sl
  add r4, r4, #32
  add r7, r7, #2
  beq .L4820
.L4719:
  ldrh  ip, [r7, #0]
  mov r2, ip, asl #22
  mov r2, r2, lsr #22
  tst ip, #2048
  mov r3, ip, lsr #12
  mov r6, r3, asl #4
  add r3, r0, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst ip, #1024
  bne .L4821
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L4750
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
  mov r3, r2, lsr #4
  streq r5, [r4, #0]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  mov r3, r2, lsr #8
  streq r5, [r4, #4]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #12
  streq r5, [r4, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #16
  streq r5, [r4, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #20
  streq r5, [r4, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #24
  streq r5, [r4, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  streq r5, [r4, #24]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  bne .L4749
  str r5, [r4, #28]
.L4837:
  add sl, sl, #1
  cmp r1, sl
  add r4, r4, #32
  add r7, r7, #2
  bne .L4719
.L4820:
  ldr r3, [sp, #0]
  add r9, r9, r1, asl #5
  add r1, r3, r1, asl #1
.L4718:
  ands  ip, lr, #7
  beq .L4791
  ldrh  r1, [r1, #0]
  mov r3, r1, asl #22
  tst r1, #2048
  mov r3, r3, lsr #22
  add r0, r0, r3, asl #5
  ldrne r3, [sp, #8]
  mov r2, r1, lsr #12
  addne r0, r0, r3
  tst r1, #1024
  mov r2, r2, asl #4
  ldreq r0, [r0, #0]
  moveq r1, #0
  beq .L4786
  ldr r0, [r0, #0]
  mov r1, #0
.L4781:
  movs  r3, r0, lsr #28
  orr r3, r8, r3
  orr r3, r2, r3
  add r1, r1, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp ip, r1
  mov r0, r0, asl #4
  add r9, r9, #4
  bne .L4781
.L4791:
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L4815:
  and r1, ip, #255
  and r3, r6, #7
  mov r2, r7, asl #12
  mov r3, r3, asl #3
  rsb fp, r1, #256
  and r2, r2, #49152
  ldr r1, [sp, #12]
  add r2, r2, r3
  mov r3, r3, asl #1
  rsb r3, r3, #56
  cmp r1, fp
  add r0, r2, r0
  str r3, [sp, #4]
  and r4, ip, #7
  bls .L4822
  cmp r4, #0
  moveq r2, r4
  beq .L4296
  ldrh  ip, [sl, #0]
  rsb r2, r4, #8
  tst ip, #2048
  mov r3, ip, asl #22
  ldrne r1, [sp, #4]
  mov r3, r3, lsr #22
  add lr, r0, r3, asl #6
  addne lr, lr, r1
  ands  ip, ip, #1024
  bne .L4823
  cmp r4, #3
  bls .L4331
  cmp r2, #0
  ldr r1, [lr, #4]
  beq .L4303
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
  mov r4, ip
  mov ip, r9
.L4334:
  ands  r3, r1, #255
  orr r3, r8, r3
  add r4, r4, #1
  strne r3, [ip, #0]
  streq r5, [ip, #0]
  cmp r2, r4
  mov r1, r1, lsr #8
  add ip, ip, #4
  bne .L4334
  add r9, r9, r2, asl #2
.L4303:
  add sl, sl, #2
.L4296:
  rsb r3, r2, fp
  movs  r2, r3, lsr #3
  beq .L4360
  mov r4, r9
  mov r7, #0
  b .L4362
.L4824:
  ldr ip, [r6, #4]
  add r7, r7, #1
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #12]
  mov r3, ip, lsr #8
  streq r5, [r4, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #8]
  mov r3, ip, lsr #16
  streq r5, [r4, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #4]
  streq r5, [r4, #4]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #0]
  streq r5, [r4, #0]
  ldr ip, [r6, #0]
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #28]
  mov r3, ip, lsr #8
  streq r5, [r4, #28]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #24]
  mov r3, ip, lsr #16
  streq r5, [r4, #24]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #20]
  streq r5, [r4, #20]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #16]
  streq r5, [r4, #16]
  cmp r2, r7
  add r4, r4, #32
  beq .L4414
.L4825:
  add sl, sl, #2
.L4362:
  ldrh  ip, [sl, #0]
  mov r3, ip, asl #22
  mov r3, r3, lsr #22
  tst ip, #2048
  add r6, r0, r3, asl #6
  ldrne r3, [sp, #4]
  addne r6, r6, r3
  tst ip, #1024
  bne .L4824
  ldr ip, [r6, #0]
  add r7, r7, #1
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #0]
  mov r3, ip, lsr #8
  streq r5, [r4, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #4]
  mov r3, ip, lsr #16
  streq r5, [r4, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #8]
  streq r5, [r4, #8]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #12]
  streq r5, [r4, #12]
  ldr ip, [r6, #4]
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #16]
  mov r3, ip, lsr #8
  streq r5, [r4, #16]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #20]
  mov r3, ip, lsr #16
  streq r5, [r4, #20]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #24]
  streq r5, [r4, #24]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #28]
  streq r5, [r4, #28]
  cmp r2, r7
  add r4, r4, #32
  bne .L4825
.L4414:
  add r9, r9, r2, asl #5
.L4360:
  ldr ip, [sp, #12]
  rsb r2, fp, ip
  movs  r1, r2, lsr #3
  ldreq r1, [sp, #0]
  beq .L4418
  ldr r7, [sp, #0]
  mov r4, r9
  mov sl, #0
  b .L4419
.L4827:
  ldr ip, [r6, #4]
  add sl, sl, #1
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #12]
  mov r3, ip, lsr #8
  streq r5, [r4, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #8]
  mov r3, ip, lsr #16
  streq r5, [r4, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #4]
  streq r5, [r4, #4]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #0]
  streq r5, [r4, #0]
  ldr ip, [r6, #0]
  add r7, r7, #2
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #28]
  mov r3, ip, lsr #8
  streq r5, [r4, #28]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #24]
  mov r3, ip, lsr #16
  streq r5, [r4, #24]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #20]
  streq r5, [r4, #20]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #16]
  streq r5, [r4, #16]
  cmp r1, sl
  add r4, r4, #32
  beq .L4826
.L4419:
  ldrh  ip, [r7, #0]
  mov r3, ip, asl #22
  mov r3, r3, lsr #22
  tst ip, #2048
  add r6, r0, r3, asl #6
  ldrne r3, [sp, #4]
  addne r6, r6, r3
  tst ip, #1024
  bne .L4827
  ldr ip, [r6, #0]
  add sl, sl, #1
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #0]
  mov r3, ip, lsr #8
  streq r5, [r4, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #4]
  mov r3, ip, lsr #16
  streq r5, [r4, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #8]
  streq r5, [r4, #8]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #12]
  streq r5, [r4, #12]
  ldr ip, [r6, #4]
  add r7, r7, #2
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #16]
  mov r3, ip, lsr #8
  streq r5, [r4, #16]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #20]
  mov r3, ip, lsr #16
  streq r5, [r4, #20]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #24]
  streq r5, [r4, #24]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #28]
  streq r5, [r4, #28]
  cmp r1, sl
  add r4, r4, #32
  bne .L4419
.L4826:
  ldr ip, [sp, #0]
  add r9, r9, r1, asl #5
  add r1, ip, r1, asl #1
.L4418:
  ands  ip, r2, #7
  beq .L4791
  ldrh  r1, [r1, #0]
  tst r1, #2048
  mov r3, r1, asl #22
  ldrne r2, [sp, #4]
  mov r3, r3, lsr #22
  add r0, r0, r3, asl #6
  addne r0, r0, r2
  tst r1, #1024
  beq .L4475
  cmp ip, #3
  ldrls r0, [r0, #4]
  bhi .L4828
.L4492:
  mov r1, #0
.L4493:
  movs  r3, r0, lsr #24
  orr r3, r8, r3
  add r1, r1, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp r1, ip
  mov r0, r0, asl #8
  add r9, r9, #4
  bcc .L4493
  b .L4791
.L4814:
  cmp ip, #255
  subhi ip, ip, #256
  movhi r3, ip, lsr #3
  movls r3, ip, lsr #3
  addhi r3, r1, r3, asl #1
  addls sl, r1, r3, asl #1
  addls r1, r1, #2048
  addhi sl, r3, #2048
  strhi r1, [sp, #0]
  strls r1, [sp, #0]
  tst r7, #128
  beq .L4056
  b .L4815
.L4813:
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_text_base_color32
.L4816:
  cmp r1, #0
  beq .L4521
  ldr r2, [sp, #12]
  rsb r4, r1, #8
  cmp r2, r4
  bcc .L4829
  ldrh  ip, [sl, #0]
  mov r2, ip, asl #22
  mov r2, r2, lsr #22
  tst ip, #2048
  mov r3, ip, lsr #12
  mov lr, r3, asl #4
  add r3, r0, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst ip, #1024
  beq .L4543
  cmp r4, #0
  ldr r2, [r3, #0]
  beq .L4545
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  mov ip, #0
  mov r2, r9
.L4547:
  movs  r3, r1, lsr #28
  orr r3, r8, r3
  orr r3, lr, r3
  add ip, ip, #1
  strne r3, [r2, #0]
  streq r5, [r2, #0]
  cmp r4, ip
  mov r1, r1, asl #4
  add r2, r2, #4
  bne .L4547
.L4806:
  add r9, r9, r4, asl #2
.L4545:
  ldr r3, [sp, #12]
  add sl, sl, #2
  rsb r3, r4, r3
  str r3, [sp, #12]
.L4521:
  ldr ip, [sp, #12]
  movs  fp, ip, lsr #3
  beq .L4560
  mov r4, r9
  mov r7, sl
  mov lr, #0
  b .L4562
.L4831:
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L4593
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  mov r3, r2, lsr #4
  streq r5, [r4, #28]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  mov r3, r2, lsr #8
  streq r5, [r4, #24]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #12
  streq r5, [r4, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #16
  streq r5, [r4, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #20
  streq r5, [r4, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #24
  streq r5, [r4, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  streq r5, [r4, #4]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
  streq r5, [r4, #0]
.L4592:
  add lr, lr, #1
  cmp fp, lr
  add r4, r4, #32
  add r7, r7, #2
  beq .L4830
.L4562:
  ldrh  ip, [r7, #0]
  tst ip, #2048
  mov r2, ip, asl #22
  mov r3, ip, lsr #12
  ldrne r1, [sp, #8]
  mov r2, r2, lsr #22
  mov r6, r3, asl #4
  add r3, r0, r2, asl #5
  addne r3, r3, r1
  tst ip, #1024
  bne .L4831
  ldr r2, [r3, #0]
  cmp r2, #0
  beq .L4593
  ands  r3, r2, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
  mov r3, r2, lsr #4
  streq r5, [r4, #0]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  mov r3, r2, lsr #8
  streq r5, [r4, #4]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #12
  streq r5, [r4, #8]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #16
  streq r5, [r4, #12]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, r2, lsr #20
  streq r5, [r4, #16]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, r2, lsr #24
  streq r5, [r4, #20]
  ands  r3, r3, #15
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  streq r5, [r4, #24]
  movs  r3, r2, lsr #28
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  bne .L4592
  str r5, [r4, #28]
.L4838:
  add lr, lr, #1
  cmp fp, lr
  add r4, r4, #32
  add r7, r7, #2
  bne .L4562
.L4830:
  add r9, r9, fp, asl #5
  add sl, sl, fp, asl #1
.L4560:
  ldr r2, [sp, #12]
  ands  r4, r2, #7
  beq .L4791
  ldrh  ip, [sl, #0]
  mov r3, ip, asl #22
  mov r3, r3, lsr #22
  tst ip, #2048
  add r0, r0, r3, asl #5
  ldrne r3, [sp, #8]
  mov r2, ip, lsr #12
  addne r0, r0, r3
  tst ip, #1024
  mov r2, r2, asl #4
  ldreq r0, [r0, #0]
  moveq r1, #0
  beq .L4629
  ldr r0, [r0, #0]
  mov r1, #0
.L4624:
  movs  r3, r0, lsr #28
  orr r3, r8, r3
  orr r3, r2, r3
  add r1, r1, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp r4, r1
  mov r0, r0, asl #4
  add r9, r9, #4
  bne .L4624
  b .L4791
.L4822:
  cmp r4, #0
  beq .L4060
  rsb lr, r4, #8
  cmp r1, lr
  bcc .L4832
  ldrh  ip, [sl, #0]
  tst ip, #2048
  mov r3, ip, asl #22
  ldrne r1, [sp, #4]
  mov r3, r3, lsr #22
  add r2, r0, r3, asl #6
  addne r2, r2, r1
  ands  ip, ip, #1024
  beq .L4131
  cmp r4, #3
  bls .L4133
  cmp lr, #0
  ldr r2, [r2, #0]
  beq .L4135
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r2, asl r3
  mov ip, r9
  mov r4, #0
.L4137:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  add r4, r4, #1
  strne r3, [ip, #0]
  streq r5, [ip, #0]
  cmp lr, r4
  mov r1, r1, asl #8
  add ip, ip, #4
  bne .L4137
.L4793:
  add r9, r9, lr, asl #2
.L4135:
  ldr r2, [sp, #12]
  add sl, sl, #2
  rsb r2, lr, r2
  str r2, [sp, #12]
.L4060:
  ldr r3, [sp, #12]
  movs  r2, r3, lsr #3
  beq .L4192
  mov r4, r9
  mov r7, sl
  mov fp, #0
  b .L4194
.L4841:
  .align  2
.L4840:
  .word io_registers
  .word map_widths
  .word vram
.L4834:
  ldr ip, [r6, #4]
  add fp, fp, #1
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #12]
  mov r3, ip, lsr #8
  streq r5, [r4, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #8]
  mov r3, ip, lsr #16
  streq r5, [r4, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #4]
  streq r5, [r4, #4]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #0]
  streq r5, [r4, #0]
  ldr ip, [r6, #0]
  add r7, r7, #2
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #28]
  mov r3, ip, lsr #8
  streq r5, [r4, #28]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #24]
  mov r3, ip, lsr #16
  streq r5, [r4, #24]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #20]
  streq r5, [r4, #20]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #16]
  streq r5, [r4, #16]
  cmp r2, fp
  add r4, r4, #32
  beq .L4833
.L4194:
  ldrh  ip, [r7, #0]
  tst ip, #2048
  mov r3, ip, asl #22
  ldrne r1, [sp, #4]
  mov r3, r3, lsr #22
  add r6, r0, r3, asl #6
  addne r6, r6, r1
  tst ip, #1024
  bne .L4834
  ldr ip, [r6, #0]
  add fp, fp, #1
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #0]
  mov r3, ip, lsr #8
  streq r5, [r4, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #4]
  mov r3, ip, lsr #16
  streq r5, [r4, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #8]
  streq r5, [r4, #8]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #12]
  streq r5, [r4, #12]
  ldr ip, [r6, #4]
  add r7, r7, #2
  ands  r3, ip, #255
  orrne r3, r8, r3
  strne r3, [r4, #16]
  mov r3, ip, lsr #8
  streq r5, [r4, #16]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #20]
  mov r3, ip, lsr #16
  streq r5, [r4, #20]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r4, #24]
  streq r5, [r4, #24]
  movs  r3, ip, lsr #24
  orrne r3, r8, r3
  strne r3, [r4, #28]
  streq r5, [r4, #28]
  cmp r2, fp
  add r4, r4, #32
  bne .L4194
.L4833:
  add r9, r9, r2, asl #5
  add sl, sl, r2, asl #1
.L4192:
  ldr r2, [sp, #12]
  ands  r4, r2, #7
  beq .L4791
  ldrh  ip, [sl, #0]
  mov r3, ip, asl #22
  mov r3, r3, lsr #22
  tst ip, #2048
  add r0, r0, r3, asl #6
  ldrne r3, [sp, #4]
  addne r0, r0, r3
  tst ip, #1024
  bne .L4835
  cmp r4, #3
  ldrls r0, [r0, #0]
  bls .L4288
  ldr r1, [r0, #0]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r9, #0]
  mov r3, r1, lsr #8
  streq r5, [r9, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #4]
  mov r3, r1, lsr #16
  streq r5, [r9, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #8]
  streq r5, [r9, #8]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r9, #12]
  streq r5, [r9, #12]
  subs  r4, r4, #4
  ldr r0, [r0, #4]
  addne r9, r9, #16
  beq .L4791
.L4288:
  mov r1, #0
.L4289:
  ands  r3, r0, #255
  orr r3, r8, r3
  add r1, r1, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp r4, r1
  mov r0, r0, lsr #8
  add r9, r9, #4
  bhi .L4289
  b .L4791
.L4689:
  str r5, [r4, #0]
  str r5, [r4, #4]
  str r5, [r4, #8]
  str r5, [r4, #12]
  str r5, [r4, #16]
  str r5, [r4, #20]
  str r5, [r4, #24]
  str r5, [r4, #28]
  b .L4836
.L4750:
  str r5, [r4, #0]
  str r5, [r4, #4]
  str r5, [r4, #8]
  str r5, [r4, #12]
  str r5, [r4, #16]
  str r5, [r4, #20]
  str r5, [r4, #24]
  str r5, [r4, #28]
  b .L4837
.L4786:
  ands  r3, r0, #15
  orr r3, r8, r3
  orr r3, r2, r3
  add r1, r1, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp ip, r1
  mov r0, r0, lsr #4
  add r9, r9, #4
  bne .L4786
  b .L4791
.L4593:
  str r5, [r4, #0]
  str r5, [r4, #4]
  str r5, [r4, #8]
  str r5, [r4, #12]
  str r5, [r4, #16]
  str r5, [r4, #20]
  str r5, [r4, #24]
  str r5, [r4, #28]
  b .L4838
.L4629:
  ands  r3, r0, #15
  orr r3, r8, r3
  orr r3, r2, r3
  add r1, r1, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp r4, r1
  mov r0, r0, lsr #4
  add r9, r9, #4
  bne .L4629
  b .L4791
.L4475:
  cmp ip, #3
  ldrls r0, [r0, #0]
  bhi .L4839
.L4513:
  mov r1, #0
.L4514:
  ands  r3, r0, #255
  orr r3, r8, r3
  add r1, r1, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp ip, r1
  mov r0, r0, lsr #8
  add r9, r9, #4
  bhi .L4514
  b .L4791
.L4835:
  cmp r4, #3
  ldrls r0, [r0, #4]
  bls .L4267
  ldr r1, [r0, #4]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r9, #12]
  mov r3, r1, lsr #8
  streq r5, [r9, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #8]
  mov r3, r1, lsr #16
  streq r5, [r9, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #4]
  streq r5, [r9, #4]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  subs  r4, r4, #4
  ldr r0, [r0, #0]
  addne r9, r9, #16
  beq .L4791
.L4267:
  mov r1, #0
.L4268:
  movs  r3, r0, lsr #24
  orr r3, r8, r3
  add r1, r1, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp r4, r1
  mov r0, r0, asl #8
  add r9, r9, #4
  bhi .L4268
  b .L4791
.L4823:
  cmp r4, #3
  bls .L4301
  cmp r2, #0
  ldr r1, [lr, #0]
  beq .L4303
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov ip, r9
  mov r4, #0
.L4305:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  add r4, r4, #1
  strne r3, [ip, #0]
  streq r5, [ip, #0]
  cmp r2, r4
  mov r1, r1, asl #8
  add ip, ip, #4
  bne .L4305
  add r9, r9, r2, asl #2
  b .L4303
.L4817:
  cmp r4, #0
  ldr r2, [r3, #0]
  beq .L4641
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  mov ip, #0
  mov r2, r9
.L4643:
  movs  r3, r1, lsr #28
  orr r3, r8, r3
  orr r3, lr, r3
  add ip, ip, #1
  strne r3, [r2, #0]
  streq r5, [r2, #0]
  cmp r4, ip
  mov r1, r1, asl #4
  add r2, r2, #4
  bne .L4643
  add r9, r9, r4, asl #2
  b .L4641
.L4829:
  ldrh  ip, [sl, #0]
  mov r3, ip, asl #22
  mov r3, r3, lsr #22
  tst ip, #2048
  add r0, r0, r3, asl #5
  ldrne r3, [sp, #8]
  mov r2, ip, lsr #12
  addne r0, r0, r3
  tst ip, #1024
  mov r2, r2, asl #4
  beq .L4527
  ldr ip, [sp, #12]
  ldr r0, [r0, #0]
  cmp ip, #0
  beq .L4791
  mov r3, r1, asl #2
  mov r0, r0, asl r3
  mov r1, #0
.L4530:
  movs  r3, r0, lsr #28
  orr r3, r8, r3
  orr r3, r2, r3
  strne r3, [r9, #0]
  ldr r3, [sp, #12]
  add r1, r1, #1
  streq r5, [r9, #0]
  cmp r3, r1
  mov r0, r0, asl #4
  add r9, r9, #4
  bne .L4530
  b .L4791
.L4832:
  ldrh  ip, [sl, #0]
  tst ip, #2048
  mov r3, ip, asl #22
  ldrne r2, [sp, #4]
  mov r3, r3, lsr #22
  add r0, r0, r3, asl #6
  addne r0, r0, r2
  tst ip, #1024
  beq .L4066
  cmp r4, #3
  bls .L4068
  ldr r3, [sp, #12]
  ldr r0, [r0, #0]
  cmp r3, #0
  beq .L4791
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r0, r0, asl r3
  mov r2, #0
.L4072:
  movs  r3, r0, lsr #24
  ldr ip, [sp, #12]
  orr r3, r8, r3
  add r2, r2, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp ip, r2
  mov r0, r0, asl #8
  add r9, r9, #4
  bne .L4072
  b .L4791
.L4839:
  ldr r1, [r0, #0]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r9, #0]
  mov r3, r1, lsr #8
  streq r5, [r9, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #4]
  mov r3, r1, lsr #16
  streq r5, [r9, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #8]
  streq r5, [r9, #8]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r9, #12]
  streq r5, [r9, #12]
  subs  ip, ip, #4
  ldr r0, [r0, #4]
  addne r9, r9, #16
  bne .L4513
  b .L4791
.L4828:
  ldr r1, [r0, #4]
  ands  r3, r1, #255
  orrne r3, r8, r3
  strne r3, [r9, #12]
  mov r3, r1, lsr #8
  streq r5, [r9, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #8]
  mov r3, r1, lsr #16
  streq r5, [r9, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #4]
  streq r5, [r9, #4]
  movs  r3, r1, lsr #24
  orrne r3, r8, r3
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  subs  ip, ip, #4
  ldr r0, [r0, #0]
  addne r9, r9, #16
  bne .L4492
  b .L4791
.L4066:
  cmp r4, #3
  bls .L4099
  ldr ip, [sp, #12]
  ldr r0, [r0, #4]
  cmp ip, #0
  beq .L4791
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r0, r0, lsr r3
  mov r2, #0
.L4102:
  ands  r3, r0, #255
  ldr r1, [sp, #12]
  orr r3, r8, r3
  add r2, r2, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp r1, r2
  mov r0, r0, lsr #8
  add r9, r9, #4
  bne .L4102
  b .L4791
.L4131:
  cmp r4, #3
  bls .L4163
  cmp lr, #0
  ldr r2, [r2, #4]
  beq .L4135
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, ip
  mov ip, r9
.L4166:
  ands  r3, r1, #255
  orr r3, r8, r3
  add r2, r2, #1
  strne r3, [ip, #0]
  streq r5, [ip, #0]
  cmp lr, r2
  mov r1, r1, lsr #8
  add ip, ip, #4
  bne .L4166
  b .L4793
.L4301:
  subs  r6, r2, #4
  ldr r1, [lr, #4]
  beq .L4311
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov ip, r9
  mov r4, #0
.L4313:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  add r4, r4, #1
  strne r3, [ip, #0]
  streq r5, [ip, #0]
  cmp r6, r4
  mov r1, r1, asl #8
  add ip, ip, #4
  bne .L4313
  add r3, r9, r2, asl #2
  sub r9, r3, #16
.L4311:
  ldr r2, [lr, #0]
  ands  r3, r2, #255
  orrne r3, r8, r3
  strne r3, [r9, #12]
  mov r3, r2, lsr #8
  streq r5, [r9, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #8]
  mov r3, r2, lsr #16
  streq r5, [r9, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #4]
  streq r5, [r9, #4]
  movs  r3, r2, lsr #24
  orrne r3, r8, r3
  strne r3, [r9, #0]
  streq r5, [r9, #0]
.L4359:
  add r9, r9, #16
  mov r2, r6
  add sl, sl, #2
  b .L4296
.L4331:
  subs  r6, r2, #4
  ldr r1, [lr, #0]
  beq .L4340
  mov r3, r4, asl #3
  mov r1, r1, lsr r3
  mov ip, r9
  mov r4, #0
.L4342:
  ands  r3, r1, #255
  orr r3, r8, r3
  add r4, r4, #1
  strne r3, [ip, #0]
  streq r5, [ip, #0]
  cmp r6, r4
  mov r1, r1, lsr #8
  add ip, ip, #4
  bne .L4342
  add r3, r9, r2, asl #2
  sub r9, r3, #16
.L4340:
  ldr r2, [lr, #4]
  ands  r3, r2, #255
  orrne r3, r8, r3
  strne r3, [r9, #0]
  mov r3, r2, lsr #8
  streq r5, [r9, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #4]
  mov r3, r2, lsr #16
  streq r5, [r9, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #8]
  streq r5, [r9, #8]
  movs  r3, r2, lsr #24
  orrne r3, r8, r3
  strne r3, [r9, #12]
  streq r5, [r9, #12]
  b .L4359
.L4527:
  ldr ip, [sp, #12]
  ldr r0, [r0, #0]
  cmp ip, #0
  beq .L4791
  mov r3, r1, asl #2
  mov r0, r0, lsr r3
  mov r1, #0
.L4536:
  ands  r3, r0, #15
  orr r3, r8, r3
  orr r3, r2, r3
  strne r3, [r9, #0]
  ldr r3, [sp, #12]
  add r1, r1, #1
  streq r5, [r9, #0]
  cmp r3, r1
  mov r0, r0, lsr #4
  add r9, r9, #4
  bne .L4536
  b .L4791
.L4543:
  cmp r4, #0
  ldr r2, [r3, #0]
  beq .L4545
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  mov ip, #0
  mov r2, r9
.L4554:
  ands  r3, r1, #15
  orr r3, r8, r3
  orr r3, lr, r3
  add ip, ip, #1
  strne r3, [r2, #0]
  streq r5, [r2, #0]
  cmp r4, ip
  mov r1, r1, lsr #4
  add r2, r2, #4
  bne .L4554
  b .L4806
.L4068:
  ldr ip, [sp, #12]
  mov r3, r4, asl #3
  ldr r1, [r0, #4]
  add r2, ip, r4
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L4077
  cmp ip, #0
  movne r2, #0
  beq .L4791
.L4094:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  strne r3, [r9, #0]
  ldr r3, [sp, #12]
  add r2, r2, #1
  streq r5, [r9, #0]
  cmp r3, r2
  mov r1, r1, asl #8
  add r9, r9, #4
  bne .L4094
  b .L4791
.L4163:
  subs  r6, lr, #4
  ldr r1, [r2, #0]
  beq .L4172
  mov r3, r4, asl #3
  mov r1, r1, lsr r3
  mov ip, r9
  mov r4, #0
.L4174:
  ands  r3, r1, #255
  orr r3, r8, r3
  add r4, r4, #1
  strne r3, [ip, #0]
  streq r5, [ip, #0]
  cmp r6, r4
  mov r1, r1, lsr #8
  add ip, ip, #4
  bne .L4174
  add r3, r9, lr, asl #2
  sub r9, r3, #16
.L4172:
  ldr r2, [r2, #4]
  ands  r3, r2, #255
  orrne r3, r8, r3
  strne r3, [r9, #0]
  mov r3, r2, lsr #8
  streq r5, [r9, #0]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #4]
  mov r3, r2, lsr #16
  streq r5, [r9, #4]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #8]
  streq r5, [r9, #8]
  movs  r3, r2, lsr #24
  orrne r3, r8, r3
  strne r3, [r9, #12]
  streq r5, [r9, #12]
.L4191:
  add r9, r9, #16
  b .L4135
.L4133:
  subs  r6, lr, #4
  ldr r1, [r2, #4]
  beq .L4143
  mov r3, r4, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov ip, r9
  mov r4, #0
.L4145:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  add r4, r4, #1
  strne r3, [ip, #0]
  streq r5, [ip, #0]
  cmp r6, r4
  mov r1, r1, asl #8
  add ip, ip, #4
  bne .L4145
  add r3, r9, lr, asl #2
  sub r9, r3, #16
.L4143:
  ldr r2, [r2, #0]
  ands  r3, r2, #255
  orrne r3, r8, r3
  strne r3, [r9, #12]
  mov r3, r2, lsr #8
  streq r5, [r9, #12]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #8]
  mov r3, r2, lsr #16
  streq r5, [r9, #8]
  ands  r3, r3, #255
  orrne r3, r8, r3
  strne r3, [r9, #4]
  streq r5, [r9, #4]
  movs  r3, r2, lsr #24
  orrne r3, r8, r3
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  add r9, r9, #16
  b .L4135
.L4099:
  ldr ip, [sp, #12]
  ldr r3, [r0, #0]
  add r2, ip, r4
  cmp r2, #4
  mov r1, r4, asl #3
  mov r2, r3, lsr r1
  bhi .L4107
  cmp ip, #0
  movne r1, #0
  beq .L4791
.L4124:
  ands  r3, r2, #255
  orr r3, r8, r3
  strne r3, [r9, #0]
  ldr r3, [sp, #12]
  add r1, r1, #1
  streq r5, [r9, #0]
  cmp r3, r1
  mov r2, r2, lsr #8
  add r9, r9, #4
  bne .L4124
  b .L4791
.L4077:
  rsbs  r4, r4, #4
  beq .L4080
  mov r2, r9
  mov ip, #0
.L4082:
  movs  r3, r1, lsr #24
  orr r3, r8, r3
  add ip, ip, #1
  strne r3, [r2, #0]
  streq r5, [r2, #0]
  cmp r4, ip
  mov r1, r1, asl #8
  add r2, r2, #4
  bne .L4082
  add r9, r9, r4, asl #2
.L4080:
  ldr r2, [sp, #12]
  ldr r0, [r0, #0]
  subs  r1, r2, r4
  beq .L4791
  mov r2, #0
.L4089:
  movs  r3, r0, lsr #24
  orr r3, r8, r3
  add r2, r2, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp r1, r2
  mov r0, r0, asl #8
  add r9, r9, #4
  bne .L4089
  b .L4791
.L4107:
  rsbs  r4, r4, #4
  beq .L4110
  mov r1, r9
  mov ip, #0
.L4112:
  ands  r3, r2, #255
  orr r3, r8, r3
  add ip, ip, #1
  strne r3, [r1, #0]
  streq r5, [r1, #0]
  cmp r4, ip
  mov r2, r2, lsr #8
  add r1, r1, #4
  bne .L4112
  add r9, r9, r4, asl #2
.L4110:
  ldr r2, [sp, #12]
  ldr r0, [r0, #4]
  subs  r1, r2, r4
  beq .L4791
  mov r2, #0
.L4119:
  ands  r3, r0, #255
  orr r3, r8, r3
  add r2, r2, #1
  strne r3, [r9, #0]
  streq r5, [r9, #0]
  cmp r1, r2
  mov r0, r0, lsr #8
  add r9, r9, #4
  bne .L4119
  b .L4791
  .size render_scanline_text_base_alpha, .-render_scanline_text_base_alpha
  .align  2
  .global render_scanline_text_transparent_alpha
  .type render_scanline_text_transparent_alpha, %function
render_scanline_text_transparent_alpha:
  @ args = 0, pretend = 0, frame = 16
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L5485
  add lr, r0, #7
  ldrh  ip, [r5, #80]
  sub sp, sp, #16
  mov lr, ip, asr lr
  mov ip, ip, asr r0
  and lr, lr, #2
  and ip, ip, #1
  orr ip, ip, lr
  mov r6, ip, asl #9
  tst r6, #512
  mov r4, r0
  mov ip, r1
  mov r8, r2
  mov sl, r3
  beq .L5463
  add r0, r5, r0, asl #2
  ldrh  r1, [r5, #6]
  ldrh  r3, [r0, #18]
  add r2, r5, r4, asl #1
  add r7, r1, r3
  ldrh  r3, [r0, #16]
  ldrh  lr, [r2, #8]
  mov r5, r7, asl #23
  mov r5, r5, lsr #23
  add r3, r3, ip
  mov r0, lr, lsr #14
  cmp r5, #255
  movls r1, #0
  movhi r1, #1
  mov r4, r3, asl #23
  ldr r3, .L5485+4
  ands  r1, r1, r0, lsr #1
  mov r2, lr, asl #3
  ldr r1, [r3, r0, asl #2]
  ldr r9, .L5485+8
  subne r3, r5, #256
  movne r3, r3, lsr #3
  moveq r3, r7, asl #3
  and r2, r2, #63488
  addne r3, r3, r1, lsr #3
  andeq r3, r3, #1984
  add r2, r2, r9
  addne r1, r2, r3, asl #6
  addeq r1, r2, r3
  mov r4, r4, lsr #23
  tst r0, #1
  andeq r4, r4, #255
  moveq r3, r4, lsr #3
  rsb fp, ip, r8
  addeq r7, r1, r3, asl #1
  add r8, sl, ip, asl #2
  streq r1, [sp, #0]
  bne .L5464
  tst lr, #128
  bne .L5465
.L4853:
  mov r2, lr, asl #12
  and r3, r5, #7
  mov r3, r3, asl #2
  and r1, r4, #255
  and r2, r2, #49152
  rsb r1, r1, #256
  add r2, r2, r3
  mov r3, r3, asl #1
  cmp fp, r1
  rsb r3, r3, #28
  str r1, [sp, #12]
  add lr, r2, r9
  str r3, [sp, #8]
  and r1, r4, #7
  bls .L5466
  cmp r1, #0
  moveq r5, r1
  beq .L5329
  ldrh  ip, [r7, #0]
  rsb r5, r1, #8
  mov r2, ip, asl #22
  mov r2, r2, lsr #22
  tst ip, #2048
  mov r3, ip, lsr #12
  mov r0, r3, asl #4
  add r3, lr, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst ip, #1024
  bne .L5467
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L5334
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  orr r0, r6, r0
  mov r2, r8
  mov ip, #0
.L5342:
  ands  r4, r1, #15
  ldrne r3, [r2, #0]
  add ip, ip, #1
  orrne r3, r4, r3, asl #16
  orrne r3, r3, r0
  strne r3, [r2, #0]
  cmp r5, ip
  mov r1, r1, lsr #4
  add r2, r2, #4
  bne .L5342
  add r8, r8, r5, asl #2
.L5334:
  add r7, r7, #2
.L5329:
  ldr r1, [sp, #12]
  rsb r3, r5, r1
  movs  sl, r3, lsr #3
  beq .L5347
  mov r4, r8
  mov ip, #0
  b .L5349
.L5468:
  ldr r1, [r3, #0]
  cmp r1, #0
  beq .L5354
  ands  r0, r1, #15
  ldrne r3, [r4, #28]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #28]
  mov r3, r1, lsr #4
  ands  r0, r3, #15
  ldrne r3, [r4, #24]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #24]
  mov r3, r1, lsr #8
  ands  r0, r3, #15
  ldrne r3, [r4, #20]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #20]
  mov r3, r1, lsr #12
  ands  r0, r3, #15
  ldrne r3, [r4, #16]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #16]
  mov r3, r1, lsr #16
  ands  r0, r3, #15
  ldrne r3, [r4, #12]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #12]
  mov r3, r1, lsr #20
  ands  r0, r3, #15
  ldrne r3, [r4, #8]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #8]
  mov r3, r1, lsr #24
  ands  r0, r3, #15
  ldrne r3, [r4, #4]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #4]
  movs  r1, r1, lsr #28
  beq .L5354
  ldr r3, [r4, #0]
  orr r2, r6, r5
  orr r3, r1, r3, asl #16
  orr r3, r3, r2
  str r3, [r4, #0]
.L5354:
  add ip, ip, #1
  cmp sl, ip
  add r4, r4, #32
  beq .L5387
.L5469:
  add r7, r7, #2
.L5349:
  ldrh  r1, [r7, #0]
  mov r2, r1, asl #22
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r3, r1, lsr #12
  mov r5, r3, asl #4
  add r3, lr, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst r1, #1024
  bne .L5468
  ldr r1, [r3, #0]
  cmp r1, #0
  beq .L5354
  ands  r0, r1, #15
  ldrne r3, [r4, #0]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #0]
  mov r3, r1, lsr #4
  ands  r0, r3, #15
  ldrne r3, [r4, #4]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #4]
  mov r3, r1, lsr #8
  ands  r0, r3, #15
  ldrne r3, [r4, #8]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #8]
  mov r3, r1, lsr #12
  ands  r0, r3, #15
  ldrne r3, [r4, #12]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #12]
  mov r3, r1, lsr #16
  ands  r0, r3, #15
  ldrne r3, [r4, #16]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #16]
  mov r3, r1, lsr #20
  ands  r0, r3, #15
  ldrne r3, [r4, #20]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #20]
  mov r3, r1, lsr #24
  ands  r0, r3, #15
  ldrne r3, [r4, #24]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #24]
  movs  r1, r1, lsr #28
  ldrne r3, [r4, #28]
  orrne r2, r6, r5
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  add ip, ip, #1
  strne r3, [r4, #28]
  cmp sl, ip
  add r4, r4, #32
  bne .L5469
.L5387:
  add r8, r8, sl, asl #5
.L5347:
  ldr r3, [sp, #12]
  rsb r9, r3, fp
  movs  sl, r9, lsr #3
  ldreq r1, [sp, #0]
  beq .L5391
  ldr ip, [sp, #0]
  mov r4, r8
  mov r7, #0
  b .L5392
.L5471:
  ldr r1, [r3, #0]
  cmp r1, #0
  beq .L5397
  ands  r0, r1, #15
  ldrne r3, [r4, #28]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #28]
  mov r3, r1, lsr #4
  ands  r0, r3, #15
  ldrne r3, [r4, #24]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #24]
  mov r3, r1, lsr #8
  ands  r0, r3, #15
  ldrne r3, [r4, #20]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #20]
  mov r3, r1, lsr #12
  ands  r0, r3, #15
  ldrne r3, [r4, #16]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #16]
  mov r3, r1, lsr #16
  ands  r0, r3, #15
  ldrne r3, [r4, #12]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #12]
  mov r3, r1, lsr #20
  ands  r0, r3, #15
  ldrne r3, [r4, #8]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #8]
  mov r3, r1, lsr #24
  ands  r0, r3, #15
  ldrne r3, [r4, #4]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #4]
  movs  r1, r1, lsr #28
  beq .L5397
  ldr r3, [r4, #0]
  orr r2, r6, r5
  orr r3, r1, r3, asl #16
  orr r3, r3, r2
  str r3, [r4, #0]
.L5397:
  add r7, r7, #1
  cmp sl, r7
  add r4, r4, #32
  add ip, ip, #2
  beq .L5470
.L5392:
  ldrh  r1, [ip, #0]
  mov r2, r1, asl #22
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r3, r1, lsr #12
  mov r5, r3, asl #4
  add r3, lr, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst r1, #1024
  bne .L5471
  ldr r1, [r3, #0]
  cmp r1, #0
  beq .L5397
  ands  r0, r1, #15
  ldrne r3, [r4, #0]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #0]
  mov r3, r1, lsr #4
  ands  r0, r3, #15
  ldrne r3, [r4, #4]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #4]
  mov r3, r1, lsr #8
  ands  r0, r3, #15
  ldrne r3, [r4, #8]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #8]
  mov r3, r1, lsr #12
  ands  r0, r3, #15
  ldrne r3, [r4, #12]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #12]
  mov r3, r1, lsr #16
  ands  r0, r3, #15
  ldrne r3, [r4, #16]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #16]
  mov r3, r1, lsr #20
  ands  r0, r3, #15
  ldrne r3, [r4, #20]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #20]
  mov r3, r1, lsr #24
  ands  r0, r3, #15
  ldrne r3, [r4, #24]
  orrne r2, r6, r5
  orrne r3, r0, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #24]
  movs  r1, r1, lsr #28
  ldrne r3, [r4, #28]
  orrne r2, r6, r5
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  add r7, r7, #1
  strne r3, [r4, #28]
  cmp sl, r7
  add r4, r4, #32
  add ip, ip, #2
  bne .L5392
.L5470:
  ldr r3, [sp, #0]
  add r8, r8, sl, asl #5
  add r1, r3, sl, asl #1
.L5391:
  ands  r4, r9, #7
  beq .L5444
  ldrh  r1, [r1, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r0, lr, r3, asl #5
  ldrne r3, [sp, #8]
  mov r2, r1, lsr #12
  addne r0, r0, r3
  mov r2, r2, asl #4
  tst r1, #1024
  ldreq r0, [r0, #0]
  orreq r2, r6, r2
  moveq lr, #0
  beq .L5440
  ldr r0, [r0, #0]
  orr r2, r6, r2
  mov lr, #0
.L5436:
  movs  r1, r0, lsr #28
  ldrne r3, [r8, #0]
  add lr, lr, #1
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r8, #0]
  cmp r4, lr
  mov r0, r0, asl #4
  add r8, r8, #4
  bne .L5436
.L5444:
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L5465:
  and r3, r5, #7
  mov r2, lr, asl #12
  mov r3, r3, asl #3
  and r1, r4, #255
  and r2, r2, #49152
  add r2, r2, r3
  rsb sl, r1, #256
  mov r3, r3, asl #1
  rsb r3, r3, #56
  cmp fp, sl
  add r0, r2, r9
  str r3, [sp, #4]
  and ip, r4, #7
  bls .L5472
  cmp ip, #0
  moveq lr, ip
  beq .L5055
  ldrh  r2, [r7, #0]
  rsb lr, ip, #8
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add r5, r0, r3, asl #6
  ldrne r3, [sp, #4]
  addne r5, r5, r3
  ands  r2, r2, #1024
  bne .L5473
  cmp ip, #3
  bls .L5085
  cmp lr, #0
  ldr r1, [r5, #4]
  beq .L5062
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
  mov r4, r2
  mov r2, r8
.L5088:
  ands  r3, r1, #255
  orr ip, r6, r3
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  strne r3, [r2, #0]
  cmp lr, r4
  mov r1, r1, lsr #8
  add r2, r2, #4
  bne .L5088
  add r8, r8, lr, asl #2
.L5062:
  add r7, r7, #2
.L5055:
  rsb r3, lr, sl
  movs  lr, r3, lsr #3
  beq .L5109
  mov r4, r8
  mov ip, #0
  b .L5111
.L5474:
  ldr r1, [r5, #4]
  cmp r1, #0
  beq .L5116
  ands  r3, r1, #255
  ldrne r2, [r4, #12]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r4, #8]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r4, #4]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #4]
  movs  r3, r1, lsr #24
  ldrne r2, [r4, #0]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #0]
.L5116:
  ldr r1, [r5, #0]
  cmp r1, #0
  beq .L5125
  ands  r3, r1, #255
  ldrne r2, [r4, #28]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #28]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r4, #24]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #24]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r4, #20]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #20]
  movs  r3, r1, lsr #24
  ldrne r2, [r4, #16]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #16]
.L5125:
  add ip, ip, #1
  cmp lr, ip
  add r4, r4, #32
  beq .L5151
.L5475:
  add r7, r7, #2
.L5111:
  ldrh  r2, [r7, #0]
  tst r2, #2048
  mov r3, r2, asl #22
  ldrne r1, [sp, #4]
  mov r3, r3, lsr #22
  add r5, r0, r3, asl #6
  addne r5, r5, r1
  tst r2, #1024
  bne .L5474
  ldr r1, [r5, #0]
  cmp r1, #0
  beq .L5134
  ands  r3, r1, #255
  ldrne r2, [r4, #0]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r4, #4]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r4, #8]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #8]
  movs  r3, r1, lsr #24
  ldrne r2, [r4, #12]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #12]
.L5134:
  ldr r1, [r5, #4]
  cmp r1, #0
  beq .L5125
  ands  r3, r1, #255
  ldrne r2, [r4, #16]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #16]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r4, #20]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #20]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r4, #24]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #24]
  movs  r3, r1, lsr #24
  ldrne r2, [r4, #28]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  add ip, ip, #1
  strne r3, [r4, #28]
  cmp lr, ip
  add r4, r4, #32
  bne .L5475
.L5151:
  add r8, r8, lr, asl #5
.L5109:
  rsb lr, sl, fp
  movs  sl, lr, lsr #3
  ldreq r1, [sp, #0]
  beq .L5155
  ldr ip, [sp, #0]
  mov r4, r8
  mov r7, #0
  b .L5156
.L5477:
  ldr r1, [r5, #4]
  cmp r1, #0
  beq .L5161
  ands  r3, r1, #255
  ldrne r2, [r4, #12]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r4, #8]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r4, #4]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #4]
  movs  r3, r1, lsr #24
  ldrne r2, [r4, #0]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #0]
.L5161:
  ldr r1, [r5, #0]
  cmp r1, #0
  beq .L5170
  ands  r3, r1, #255
  ldrne r2, [r4, #28]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #28]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r4, #24]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #24]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r4, #20]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #20]
  movs  r3, r1, lsr #24
  ldrne r2, [r4, #16]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #16]
.L5170:
  add r7, r7, #1
  cmp sl, r7
  add r4, r4, #32
  add ip, ip, #2
  beq .L5476
.L5156:
  ldrh  r2, [ip, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add r5, r0, r3, asl #6
  ldrne r3, [sp, #4]
  addne r5, r5, r3
  tst r2, #1024
  bne .L5477
  ldr r1, [r5, #0]
  cmp r1, #0
  beq .L5179
  ands  r3, r1, #255
  ldrne r2, [r4, #0]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r4, #4]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r4, #8]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #8]
  movs  r3, r1, lsr #24
  ldrne r2, [r4, #12]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #12]
.L5179:
  ldr r1, [r5, #4]
  cmp r1, #0
  beq .L5170
  ands  r3, r1, #255
  ldrne r2, [r4, #16]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #16]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r4, #20]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #20]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r4, #24]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r4, #24]
  movs  r3, r1, lsr #24
  ldrne r2, [r4, #28]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  add r7, r7, #1
  strne r3, [r4, #28]
  cmp sl, r7
  add r4, r4, #32
  add ip, ip, #2
  bne .L5156
.L5476:
  ldr r2, [sp, #0]
  add r8, r8, sl, asl #5
  add r1, r2, sl, asl #1
.L5155:
  ands  ip, lr, #7
  beq .L5444
  ldrh  r1, [r1, #0]
  mov r3, r1, asl #22
  mov r3, r3, lsr #22
  tst r1, #2048
  add r0, r0, r3, asl #6
  ldrne r3, [sp, #4]
  addne r0, r0, r3
  tst r1, #1024
  beq .L5200
  cmp ip, #3
  ldrls r0, [r0, #4]
  bls .L5214
  ldr r1, [r0, #4]
  cmp r1, #0
  beq .L5204
  ands  r3, r1, #255
  ldrne r2, [r8, #12]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r8, #8]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r8, #4]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #4]
  movs  r3, r1, lsr #24
  ldrne r2, [r8, #0]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #0]
.L5204:
  subs  ip, ip, #4
  ldr r0, [r0, #0]
  addne r8, r8, #16
  beq .L5444
.L5214:
  mov r1, #0
.L5215:
  movs  r3, r0, lsr #24
  orr r2, r6, r3
  ldrne r3, [r8, #0]
  add r1, r1, #1
  orrne r3, r2, r3, asl #16
  strne r3, [r8, #0]
  cmp ip, r1
  mov r0, r0, asl #8
  add r8, r8, #4
  bhi .L5215
  b .L5444
.L5464:
  cmp r4, #255
  subhi r4, r4, #256
  movhi r3, r4, lsr #3
  movls r3, r4, lsr #3
  addhi r3, r1, r3, asl #1
  addls r7, r1, r3, asl #1
  addls r1, r1, #2048
  addhi r7, r3, #2048
  strhi r1, [sp, #0]
  strls r1, [sp, #0]
  tst lr, #128
  beq .L4853
  b .L5465
.L5463:
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_text_transparent_color32
.L5466:
  cmp r1, #0
  beq .L5238
  rsb r5, r1, #8
  cmp fp, r5
  bcc .L5478
  ldrh  ip, [r7, #0]
  mov r2, ip, asl #22
  mov r2, r2, lsr #22
  tst ip, #2048
  mov r3, ip, lsr #12
  mov r0, r3, asl #4
  add r3, lr, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst ip, #1024
  beq .L5258
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L5260
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  orr r0, r6, r0
  mov r2, r8
  mov r4, #0
.L5262:
  movs  ip, r1, lsr #28
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  orrne r3, r3, r0
  strne r3, [r2, #0]
  cmp r5, r4
  mov r1, r1, asl #4
  add r2, r2, #4
  bne .L5262
.L5459:
  add r8, r8, r5, asl #2
.L5260:
  rsb fp, r5, fp
  add r7, r7, #2
.L5238:
  movs  r9, fp, lsr #3
  beq .L5273
  mov r4, r8
  mov ip, r7
  mov sl, #0
  b .L5275
.L5486:
  .align  2
.L5485:
  .word io_registers
  .word map_widths
  .word vram
.L5480:
  ldr r5, [r3, #0]
  cmp r5, #0
  beq .L5280
  ands  r1, r5, #15
  ldrne r3, [r4, #28]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #28]
  mov r3, r5, lsr #4
  ands  r1, r3, #15
  ldrne r3, [r4, #24]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #24]
  mov r3, r5, lsr #8
  ands  r1, r3, #15
  ldrne r3, [r4, #20]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #20]
  mov r3, r5, lsr #12
  ands  r1, r3, #15
  ldrne r3, [r4, #16]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #16]
  mov r3, r5, lsr #16
  ands  r1, r3, #15
  ldrne r3, [r4, #12]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #12]
  mov r3, r5, lsr #20
  ands  r1, r3, #15
  ldrne r3, [r4, #8]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #8]
  mov r3, r5, lsr #24
  ands  r1, r3, #15
  ldrne r3, [r4, #4]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #4]
  movs  r5, r5, lsr #28
  beq .L5280
  ldr r3, [r4, #0]
  orr r2, r6, r0
  orr r3, r5, r3, asl #16
  orr r3, r3, r2
  str r3, [r4, #0]
.L5280:
  add sl, sl, #1
  cmp r9, sl
  add r4, r4, #32
  add ip, ip, #2
  beq .L5479
.L5275:
  ldrh  r1, [ip, #0]
  mov r2, r1, asl #22
  mov r2, r2, lsr #22
  tst r1, #2048
  mov r3, r1, lsr #12
  mov r0, r3, asl #4
  add r3, lr, r2, asl #5
  ldrne r2, [sp, #8]
  addne r3, r3, r2
  tst r1, #1024
  bne .L5480
  ldr r5, [r3, #0]
  cmp r5, #0
  beq .L5280
  ands  r1, r5, #15
  ldrne r3, [r4, #0]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #0]
  mov r3, r5, lsr #4
  ands  r1, r3, #15
  ldrne r3, [r4, #4]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #4]
  mov r3, r5, lsr #8
  ands  r1, r3, #15
  ldrne r3, [r4, #8]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #8]
  mov r3, r5, lsr #12
  ands  r1, r3, #15
  ldrne r3, [r4, #12]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #12]
  mov r3, r5, lsr #16
  ands  r1, r3, #15
  ldrne r3, [r4, #16]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #16]
  mov r3, r5, lsr #20
  ands  r1, r3, #15
  ldrne r3, [r4, #20]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #20]
  mov r3, r5, lsr #24
  ands  r1, r3, #15
  ldrne r3, [r4, #24]
  orrne r2, r6, r0
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r4, #24]
  movs  r5, r5, lsr #28
  ldrne r3, [r4, #28]
  orrne r2, r6, r0
  orrne r3, r5, r3, asl #16
  orrne r3, r3, r2
  add sl, sl, #1
  strne r3, [r4, #28]
  cmp r9, sl
  add r4, r4, #32
  add ip, ip, #2
  bne .L5275
.L5479:
  add r8, r8, r9, asl #5
  add r7, r7, r9, asl #1
.L5273:
  ands  r5, fp, #7
  beq .L5444
  ldrh  r4, [r7, #0]
  mov r3, r4, asl #22
  mov r3, r3, lsr #22
  tst r4, #2048
  add r0, lr, r3, asl #5
  ldrne r3, [sp, #8]
  mov r2, r4, lsr #12
  addne r0, r0, r3
  mov r2, r2, asl #4
  tst r4, #1024
  ldreq r0, [r0, #0]
  orreq r2, r6, r2
  moveq lr, #0
  beq .L5323
  ldr r0, [r0, #0]
  orr r2, r6, r2
  mov lr, #0
.L5319:
  movs  r1, r0, lsr #28
  ldrne r3, [r8, #0]
  add lr, lr, #1
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r8, #0]
  cmp r5, lr
  mov r0, r0, asl #4
  add r8, r8, #4
  bne .L5319
  b .L5444
.L5472:
  cmp ip, #0
  beq .L4857
  rsb lr, ip, #8
  cmp fp, lr
  bcc .L5481
  ldrh  r2, [r7, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add r5, r0, r3, asl #6
  ldrne r3, [sp, #4]
  addne r5, r5, r3
  ands  r2, r2, #1024
  beq .L4920
  cmp ip, #3
  bls .L4922
  cmp lr, #0
  ldr r2, [r5, #0]
  beq .L4924
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, asl r3
  mov r4, #0
  mov r2, r8
.L4926:
  movs  r3, r1, lsr #24
  orr ip, r6, r3
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  strne r3, [r2, #0]
  cmp lr, r4
  mov r1, r1, asl #8
  add r2, r2, #4
  bne .L4926
.L5446:
  add r8, r8, lr, asl #2
.L4924:
  rsb fp, lr, fp
  add r7, r7, #2
.L4857:
  movs  r9, fp, lsr #3
  beq .L4971
  mov r1, r8
  mov ip, r7
  mov sl, #0
  b .L4973
.L5483:
  ldr r4, [r5, #4]
  cmp r4, #0
  beq .L4978
  ands  r3, r4, #255
  ldrne r2, [r1, #12]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #12]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r1, #8]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #8]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r1, #4]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #4]
  movs  r3, r4, lsr #24
  ldrne r2, [r1, #0]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #0]
.L4978:
  ldr r4, [r5, #0]
  cmp r4, #0
  beq .L4987
  ands  r3, r4, #255
  ldrne r2, [r1, #28]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #28]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r1, #24]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #24]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r1, #20]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #20]
  movs  r3, r4, lsr #24
  ldrne r2, [r1, #16]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #16]
.L4987:
  add sl, sl, #1
  cmp r9, sl
  add r1, r1, #32
  add ip, ip, #2
  beq .L5482
.L4973:
  ldrh  r2, [ip, #0]
  mov r3, r2, asl #22
  mov r3, r3, lsr #22
  tst r2, #2048
  add r5, r0, r3, asl #6
  ldrne r3, [sp, #4]
  addne r5, r5, r3
  tst r2, #1024
  bne .L5483
  ldr r4, [r5, #0]
  cmp r4, #0
  beq .L4996
  ands  r3, r4, #255
  ldrne r2, [r1, #0]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #0]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r1, #4]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #4]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r1, #8]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #8]
  movs  r3, r4, lsr #24
  ldrne r2, [r1, #12]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #12]
.L4996:
  ldr r4, [r5, #4]
  cmp r4, #0
  beq .L4987
  ands  r3, r4, #255
  ldrne r2, [r1, #16]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #16]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r1, #20]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #20]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r1, #24]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r1, #24]
  movs  r3, r4, lsr #24
  ldrne r2, [r1, #28]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  add sl, sl, #1
  strne r3, [r1, #28]
  cmp r9, sl
  add r1, r1, #32
  add ip, ip, #2
  bne .L4973
.L5482:
  add r8, r8, r9, asl #5
  add r7, r7, r9, asl #1
.L4971:
  ands  ip, fp, #7
  beq .L5444
  ldrh  r2, [r7, #0]
  tst r2, #2048
  mov r3, r2, asl #22
  ldrne r1, [sp, #4]
  mov r3, r3, lsr #22
  add r0, r0, r3, asl #6
  addne r0, r0, r1
  tst r2, #1024
  bne .L5484
  cmp ip, #3
  ldrls r0, [r0, #0]
  bls .L5048
  ldr r1, [r0, #0]
  cmp r1, #0
  beq .L5038
  ands  r3, r1, #255
  ldrne r2, [r8, #0]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r8, #4]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r8, #8]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #8]
  movs  r3, r1, lsr #24
  ldrne r2, [r8, #12]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #12]
.L5038:
  subs  ip, ip, #4
  ldr r0, [r0, #4]
  addne r8, r8, #16
  beq .L5444
.L5048:
  mov r1, #0
.L5049:
  ands  r3, r0, #255
  orr r2, r6, r3
  ldrne r3, [r8, #0]
  add r1, r1, #1
  orrne r3, r2, r3, asl #16
  strne r3, [r8, #0]
  cmp ip, r1
  mov r0, r0, lsr #8
  add r8, r8, #4
  bhi .L5049
  b .L5444
.L5440:
  ands  r1, r0, #15
  ldrne r3, [r8, #0]
  add lr, lr, #1
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r8, #0]
  cmp r4, lr
  mov r0, r0, lsr #4
  add r8, r8, #4
  bne .L5440
  b .L5444
.L5323:
  ands  r1, r0, #15
  ldrne r3, [r8, #0]
  add lr, lr, #1
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r8, #0]
  cmp r5, lr
  mov r0, r0, lsr #4
  add r8, r8, #4
  bne .L5323
  b .L5444
.L5200:
  cmp ip, #3
  ldrls r0, [r0, #0]
  bls .L5231
  ldr r1, [r0, #0]
  cmp r1, #0
  beq .L5221
  ands  r3, r1, #255
  ldrne r2, [r8, #0]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r8, #4]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r8, #8]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #8]
  movs  r3, r1, lsr #24
  ldrne r2, [r8, #12]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #12]
.L5221:
  subs  ip, ip, #4
  ldr r0, [r0, #4]
  addne r8, r8, #16
  beq .L5444
.L5231:
  mov r1, #0
.L5232:
  ands  r3, r0, #255
  orr r2, r6, r3
  ldrne r3, [r8, #0]
  add r1, r1, #1
  orrne r3, r2, r3, asl #16
  strne r3, [r8, #0]
  cmp ip, r1
  mov r0, r0, lsr #8
  add r8, r8, #4
  bhi .L5232
  b .L5444
.L5484:
  cmp ip, #3
  ldrls r0, [r0, #4]
  bls .L5031
  ldr r1, [r0, #4]
  cmp r1, #0
  beq .L5021
  ands  r3, r1, #255
  ldrne r2, [r8, #12]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r2, [r8, #8]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r2, [r8, #4]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #4]
  movs  r3, r1, lsr #24
  ldrne r2, [r8, #0]
  orrne r3, r6, r3
  orrne r3, r3, r2, asl #16
  strne r3, [r8, #0]
.L5021:
  subs  ip, ip, #4
  ldr r0, [r0, #0]
  addne r8, r8, #16
  beq .L5444
.L5031:
  mov r1, #0
.L5032:
  movs  r3, r0, lsr #24
  orr r2, r6, r3
  ldrne r3, [r8, #0]
  add r1, r1, #1
  orrne r3, r2, r3, asl #16
  strne r3, [r8, #0]
  cmp ip, r1
  mov r0, r0, asl #8
  add r8, r8, #4
  bhi .L5032
  b .L5444
.L5473:
  cmp ip, #3
  bls .L5060
  cmp lr, #0
  ldr r2, [r5, #0]
  beq .L5062
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, asl r3
  mov r4, #0
  mov r2, r8
.L5064:
  movs  r3, r1, lsr #24
  orr ip, r6, r3
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  strne r3, [r2, #0]
  cmp lr, r4
  mov r1, r1, asl #8
  add r2, r2, #4
  bne .L5064
  add r8, r8, lr, asl #2
  b .L5062
.L5467:
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L5334
  mov r3, r1, asl #2
  mov r1, r2, asl r3
  orr r0, r6, r0
  mov r2, r8
  mov ip, #0
.L5336:
  movs  r4, r1, lsr #28
  ldrne r3, [r2, #0]
  add ip, ip, #1
  orrne r3, r4, r3, asl #16
  orrne r3, r3, r0
  strne r3, [r2, #0]
  cmp r5, ip
  mov r1, r1, asl #4
  add r2, r2, #4
  bne .L5336
  add r8, r8, r5, asl #2
  b .L5334
.L5478:
  ldrh  r4, [r7, #0]
  mov r3, r4, asl #22
  mov r3, r3, lsr #22
  tst r4, #2048
  add r0, lr, r3, asl #5
  ldrne r3, [sp, #8]
  mov r2, r4, lsr #12
  addne r0, r0, r3
  tst r4, #1024
  mov r2, r2, asl #4
  beq .L5244
  cmp fp, #0
  ldr r0, [r0, #0]
  beq .L5444
  mov r3, r1, asl #2
  mov r0, r0, asl r3
  orr r2, r6, r2
  mov lr, #0
.L5247:
  movs  r1, r0, lsr #28
  ldrne r3, [r8, #0]
  add lr, lr, #1
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r8, #0]
  cmp fp, lr
  mov r0, r0, asl #4
  add r8, r8, #4
  bne .L5247
  b .L5444
.L5481:
  ldrh  r2, [r7, #0]
  tst r2, #2048
  mov r3, r2, asl #22
  ldrne r1, [sp, #4]
  mov r3, r3, lsr #22
  add r0, r0, r3, asl #6
  addne r0, r0, r1
  tst r2, #1024
  beq .L4863
  cmp ip, #3
  bls .L4865
  cmp fp, #0
  ldr r0, [r0, #0]
  beq .L5444
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r0, r0, asl r3
  mov r1, #0
.L4869:
  movs  r3, r0, lsr #24
  orr r2, r6, r3
  ldrne r3, [r8, #0]
  add r1, r1, #1
  orrne r3, r2, r3, asl #16
  strne r3, [r8, #0]
  cmp fp, r1
  mov r0, r0, asl #8
  add r8, r8, #4
  bne .L4869
  b .L5444
.L5060:
  subs  r9, lr, #4
  ldr r2, [r5, #4]
  beq .L5069
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, asl r3
  mov r4, #0
  mov r2, r8
.L5071:
  movs  r3, r1, lsr #24
  orr ip, r6, r3
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  strne r3, [r2, #0]
  cmp r9, r4
  mov r1, r1, asl #8
  add r2, r2, #4
  bne .L5071
  add r3, r8, lr, asl #2
  sub r8, r3, #16
.L5069:
  ldr r2, [r5, #0]
  cmp r2, #0
  beq .L5100
  ands  r1, r2, #255
  ldrne r3, [r8, #12]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #12]
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  ldrne r3, [r8, #8]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #8]
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  ldrne r3, [r8, #4]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #4]
  movs  r2, r2, lsr #24
  ldrne r3, [r8, #0]
  orrne r3, r6, r3, asl #16
  orrne r3, r2, r3
  strne r3, [r8, #0]
.L5100:
  add r8, r8, #16
  mov lr, r9
  add r7, r7, #2
  b .L5055
.L5258:
  cmp r5, #0
  ldr r2, [r3, #0]
  beq .L5260
  mov r3, r1, asl #2
  mov r1, r2, lsr r3
  orr r0, r6, r0
  mov r2, r8
  mov r4, #0
.L5268:
  ands  ip, r1, #15
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  orrne r3, r3, r0
  strne r3, [r2, #0]
  cmp r5, r4
  mov r1, r1, lsr #4
  add r2, r2, #4
  bne .L5268
  b .L5459
.L4920:
  cmp ip, #3
  bls .L4947
  cmp lr, #0
  ldr r1, [r5, #4]
  beq .L4924
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r1, lsr r3
  mov r4, r2
  mov r2, r8
.L4950:
  ands  r3, r1, #255
  orr ip, r6, r3
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  strne r3, [r2, #0]
  cmp lr, r4
  mov r1, r1, lsr #8
  add r2, r2, #4
  bne .L4950
  b .L5446
.L5244:
  cmp fp, #0
  ldr r0, [r0, #0]
  beq .L5444
  mov r3, r1, asl #2
  mov r0, r0, lsr r3
  orr r2, r6, r2
  mov lr, #0
.L5252:
  ands  r1, r0, #15
  ldrne r3, [r8, #0]
  add lr, lr, #1
  orrne r3, r1, r3, asl #16
  orrne r3, r3, r2
  strne r3, [r8, #0]
  cmp fp, lr
  mov r0, r0, lsr #4
  add r8, r8, #4
  bne .L5252
  b .L5444
.L4863:
  cmp ip, #3
  bls .L4892
  cmp fp, #0
  ldr r0, [r0, #4]
  beq .L5444
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r0, r0, lsr r3
  mov r1, #0
.L4895:
  ands  r3, r0, #255
  orr r2, r6, r3
  ldrne r3, [r8, #0]
  add r1, r1, #1
  orrne r3, r2, r3, asl #16
  strne r3, [r8, #0]
  cmp fp, r1
  mov r0, r0, lsr #8
  add r8, r8, #4
  bne .L4895
  b .L5444
.L5085:
  subs  r9, lr, #4
  ldr r2, [r5, #0]
  beq .L5093
  mov r3, ip, asl #3
  mov r1, r2, lsr r3
  mov r4, #0
  mov r2, r8
.L5095:
  ands  r3, r1, #255
  orr ip, r6, r3
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  strne r3, [r2, #0]
  cmp r9, r4
  mov r1, r1, lsr #8
  add r2, r2, #4
  bne .L5095
  add r3, r8, lr, asl #2
  sub r8, r3, #16
.L5093:
  ldr r2, [r5, #4]
  cmp r2, #0
  beq .L5100
  ands  r1, r2, #255
  ldrne r3, [r8, #0]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #0]
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  ldrne r3, [r8, #4]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #4]
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  ldrne r3, [r8, #8]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #8]
  movs  r2, r2, lsr #24
  ldrne r3, [r8, #12]
  orrne r3, r6, r3, asl #16
  orrne r3, r2, r3
  strne r3, [r8, #12]
  b .L5100
.L4922:
  subs  sl, lr, #4
  ldr r2, [r5, #4]
  beq .L4931
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, asl r3
  mov r4, #0
  mov r2, r8
.L4933:
  movs  r3, r1, lsr #24
  orr ip, r6, r3
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  strne r3, [r2, #0]
  cmp sl, r4
  mov r1, r1, asl #8
  add r2, r2, #4
  bne .L4933
  add r3, r8, lr, asl #2
  sub r8, r3, #16
.L4931:
  ldr r2, [r5, #0]
  cmp r2, #0
  beq .L4962
  ands  r1, r2, #255
  ldrne r3, [r8, #12]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #12]
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  ldrne r3, [r8, #8]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #8]
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  ldrne r3, [r8, #4]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #4]
  movs  r2, r2, lsr #24
  ldrne r3, [r8, #0]
  orrne r3, r6, r3, asl #16
  orrne r3, r2, r3
  strne r3, [r8, #0]
.L4962:
  add r8, r8, #16
  b .L4924
.L4865:
  mov r3, ip, asl #3
  ldr r1, [r0, #4]
  add r2, fp, ip
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L4873
  cmp fp, #0
  movne r0, #0
  beq .L5444
.L4888:
  movs  r3, r1, lsr #24
  orr r2, r6, r3
  ldrne r3, [r8, #0]
  add r0, r0, #1
  orrne r3, r2, r3, asl #16
  strne r3, [r8, #0]
  cmp fp, r0
  mov r1, r1, asl #8
  add r8, r8, #4
  bne .L4888
  b .L5444
.L4947:
  subs  sl, lr, #4
  ldr r2, [r5, #0]
  beq .L4955
  mov r3, ip, asl #3
  mov r1, r2, lsr r3
  mov r4, #0
  mov r2, r8
.L4957:
  ands  r3, r1, #255
  orr ip, r6, r3
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  strne r3, [r2, #0]
  cmp sl, r4
  mov r1, r1, lsr #8
  add r2, r2, #4
  bne .L4957
  add r3, r8, lr, asl #2
  sub r8, r3, #16
.L4955:
  ldr r2, [r5, #4]
  cmp r2, #0
  beq .L4962
  ands  r1, r2, #255
  ldrne r3, [r8, #0]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #0]
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  ldrne r3, [r8, #4]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #4]
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  ldrne r3, [r8, #8]
  orrne r3, r6, r3, asl #16
  orrne r3, r1, r3
  strne r3, [r8, #8]
  movs  r2, r2, lsr #24
  ldrne r3, [r8, #12]
  orrne r3, r6, r3, asl #16
  orrne r3, r2, r3
  strne r3, [r8, #12]
  add r8, r8, #16
  b .L4924
.L4892:
  add r2, fp, ip
  ldr r3, [r0, #0]
  cmp r2, #4
  mov r1, ip, asl #3
  mov r2, r3, lsr r1
  bhi .L4899
  cmp fp, #0
  movne r0, #0
  beq .L5444
.L4914:
  ands  r3, r2, #255
  orr r1, r6, r3
  ldrne r3, [r8, #0]
  add r0, r0, #1
  orrne r3, r1, r3, asl #16
  strne r3, [r8, #0]
  cmp fp, r0
  mov r2, r2, lsr #8
  add r8, r8, #4
  bne .L4914
  b .L5444
.L4873:
  rsbs  r5, ip, #4
  beq .L4876
  mov r2, r8
  mov r4, #0
.L4878:
  movs  r3, r1, lsr #24
  orr ip, r6, r3
  ldrne r3, [r2, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  strne r3, [r2, #0]
  cmp r5, r4
  mov r1, r1, asl #8
  add r2, r2, #4
  bne .L4878
  add r8, r8, r5, asl #2
.L4876:
  subs  ip, fp, r5
  ldr r0, [r0, #0]
  beq .L5444
  mov r1, #0
.L4884:
  movs  r3, r0, lsr #24
  orr r2, r6, r3
  ldrne r3, [r8, #0]
  add r1, r1, #1
  orrne r3, r2, r3, asl #16
  strne r3, [r8, #0]
  cmp ip, r1
  mov r0, r0, asl #8
  add r8, r8, #4
  bne .L4884
  b .L5444
.L4899:
  rsbs  r5, ip, #4
  beq .L4902
  mov r1, r8
  mov r4, #0
.L4904:
  ands  r3, r2, #255
  orr ip, r6, r3
  ldrne r3, [r1, #0]
  add r4, r4, #1
  orrne r3, ip, r3, asl #16
  strne r3, [r1, #0]
  cmp r5, r4
  mov r2, r2, lsr #8
  add r1, r1, #4
  bne .L4904
  add r8, r8, r5, asl #2
.L4902:
  subs  ip, fp, r5
  ldr r0, [r0, #4]
  beq .L5444
  mov r1, #0
.L4910:
  ands  r3, r0, #255
  orr r2, r6, r3
  ldrne r3, [r8, #0]
  add r1, r1, #1
  orrne r3, r2, r3, asl #16
  strne r3, [r8, #0]
  cmp ip, r1
  mov r0, r0, lsr #8
  add r8, r8, #4
  bne .L4910
  b .L5444
  .size render_scanline_text_transparent_alpha, .-render_scanline_text_transparent_alpha
  .align  2
  .global render_scanline_affine_base_normal
  .type render_scanline_affine_base_normal, %function
render_scanline_affine_base_normal:
  @ args = 0, pretend = 0, frame = 24
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L5544
  mov lr, r0, asl #4
  add ip, r5, r0, asl #1
  ldrh  r4, [ip, #8]
  ldr ip, .L5544+4
  sub r0, r0, #2
  sub lr, lr, #32
  add lr, lr, r5
  ldr sl, [ip, r0, asl #2]
  ldr ip, .L5544+8
  ldrsh fp, [lr, #36]
  mov r6, r4, lsr #14
  ldr r7, .L5544+12
  mov r5, r4, lsr #12
  ldrsh r9, [lr, #32]
  mov lr, r4, asl #3
  mov r4, r4, asl #12
  ldr r8, [ip, r0, asl #2]
  and r5, r5, #2
  and lr, lr, #63488
  and r4, r4, #49152
  sub sp, sp, #24
  add ip, r6, #7
  add r4, r4, r7
  add lr, lr, r7
  mov r0, #1
  add r6, r6, #4
  cmp fp, #0
  orrne r5, r5, #1
  mov r0, r0, asl ip
  str r4, [sp, #16]
  mla ip, r9, r1, r8
  rsb r4, r1, r2
  str r6, [sp, #8]
  str lr, [sp, #12]
  add r7, r3, r1, asl #1
  mla r8, fp, r1, sl
  cmp r5, #3
  ldrls pc, [pc, r5, asl #2]
  b .L5531
  .p2align 2
.L5493:
  .word .L5489
  .word .L5490
  .word .L5491
  .word .L5492
.L5491:
  sub sl, r0, #1
  and r3, sl, r8, asr #8
  cmp r0, r3
  bhi .L5541
.L5531:
  add sp, sp, #24
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L5489:
  mov r3, r8, asr #8
  ldr sl, .L5544+16
  cmp r0, r3
  ldrh  r1, [sl, #0]
  bls .L5497
  ldr r5, [sp, #12]
  ldr lr, [sp, #8]
  mov r2, r3, lsr #3
  add r6, r5, r2, asl lr
  ldr r2, [sp, #16]
  and r3, r3, #7
  cmp r4, #0
  add fp, r2, r3, asl #3
  beq .L5497
  mov r5, ip, asr #8
  cmp r0, r5
  movhi r8, #0
  bhi .L5536
  mov r3, r1, asl #16
  mov r3, r3, lsr #16
  mov r8, #0
.L5504:
  add r8, r8, #1
  add ip, ip, r9
  cmp r4, r8
  mov r2, ip, asr #8
  strh  r3, [r7], #2  @ movhi
  beq .L5496
  cmp r0, r2
  bls .L5504
  mov r5, r2
  b .L5536
.L5490:
  ldr r5, .L5544+16
  cmp r4, #0
  ldrh  r3, [r5, #0]
  beq .L5531
  mov r1, r8, asr #8
  mov r5, ip, asr #8
  cmp r0, r5
  cmphi r0, r1
  movls r2, #0
  movhi r2, #1
  movls r3, r3, asl #16
  movls r1, r3, lsr #16
  movls sl, r2
  bls .L5512
  b .L5543
.L5513:
  cmp r0, r2
  cmphi r0, r3
  bhi .L5514
.L5512:
  add sl, sl, #1
  add ip, ip, r9
  add r8, r8, fp
  cmp r4, sl
  strh  r1, [r7, #0]  @ movhi
  mov r2, ip, asr #8
  mov r3, r8, asr #8
  add r7, r7, #2
  bne .L5513
  b .L5531
.L5492:
  cmp r4, #0
  sub lr, r0, #1
  beq .L5531
  mvn r6, #0
  mov r0, #0
.L5527:
  and r3, lr, r8, asr #8
  ldr r5, [sp, #8]
  mov r2, r3, lsr #3
  mov r2, r2, asl r5
  and r1, lr, ip, asr #8
  and sl, r3, #7
  add r3, r2, r1, lsr #3
  cmp r3, r6
  and r5, r1, #7
  ldrne r1, [sp, #12]
  mov r6, r3
  ldrne r2, [sp, #16]
  ldrneb  r3, [r1, r3]  @ zero_extendqisi2
  add r0, r0, #1
  addne r3, r2, r3, asl #6
  strne r3, [sp, #4]
  ldr r3, [sp, #4]
  cmp r4, r0
  add r2, r3, sl, asl #3
  ldrb  r3, [r2, r5]  @ zero_extendqisi2
  ldr r5, .L5544+16
  mov r3, r3, asl #1
  ldrh  r3, [r3, r5]
  add ip, ip, r9
  strh  r3, [r7, #0]  @ movhi
  add r8, r8, fp
  add r7, r7, #2
  bne .L5527
  b .L5531
.L5541:
  ldr r0, [sp, #12]
  ldr r1, [sp, #8]
  mov r2, r3, lsr #3
  add r6, r0, r2, asl r1
  ldr r2, [sp, #16]
  and r3, r3, #7
  cmp r4, #0
  add r5, r2, r3, asl #3
  beq .L5531
  ldr lr, .L5544+16
  mov r0, #0
.L5525:
  and r3, sl, ip, asr #8
  ldrb  r1, [r6, r3, lsr #3]  @ zero_extendqisi2
  and r3, r3, #7
  add r3, r3, r1, asl #6
  ldrb  r2, [r3, r5]  @ zero_extendqisi2
  add r0, r0, #1
  mov r2, r2, asl #1
  ldrh  r2, [r2, lr]
  cmp r4, r0
  strh  r2, [r7], #2  @ movhi
  add ip, ip, r9
  bne .L5525
  b .L5531
.L5497:
  mov r8, #0
.L5496:
  cmp r8, r4
  ldrh  r3, [sl, #0]
  bcs .L5531
  mov r3, r3, asl #16
  rsb r2, r8, r4
  mov r3, r3, lsr #16
  mov r1, #0
.L5508:
  add r1, r1, #1
  cmp r2, r1
  strh  r3, [r7], #2  @ movhi
  bne .L5508
  b .L5531
.L5506:
  cmp r0, r5
  bls .L5496
.L5536:
  ldrb  r3, [r6, r5, lsr #3]  @ zero_extendqisi2
  and r2, r5, #7
  add r2, r2, r3, asl #6
  ldrb  r1, [r2, fp]  @ zero_extendqisi2
  add r8, r8, #1
  mov r1, r1, asl #1
  ldrh  r1, [r1, sl]
  add ip, ip, r9
  cmp r4, r8
  mov r5, ip, asr #8
  strh  r1, [r7], #2  @ movhi
  bhi .L5506
  b .L5496
.L5514:
  mov r5, r2
  mov r1, r3
.L5515:
  cmp r0, r1
  cmphi r0, r5
  mvnhi r6, #0
  bhi .L5519
  b .L5516
.L5518:
  cmp r0, r1
  cmphi r0, r5
  bls .L5516
.L5519:
  ldr r2, [sp, #8]
  mov r3, r1, lsr #3
  mov r3, r3, asl r2
  add r3, r3, r5, lsr #3
  cmp r3, r6
  ldrne r2, [sp, #12]
  and r1, r1, #7
  str r1, [sp, #0]
  mov r6, r3
  ldrneb  r3, [r2, r3]  @ zero_extendqisi2
  ldrne r2, [sp, #16]
  and lr, r5, #7
  addne r3, r2, r3, asl #6
  strne r3, [sp, #20]
  ldr r2, [sp, #0]
  ldr r3, [sp, #20]
  add sl, sl, #1
  add r3, r3, r2, asl #3
  str r3, [sp, #0]
  ldrb  r3, [r3, lr]  @ zero_extendqisi2
  ldr lr, .L5544+16
  mov r3, r3, asl #1
  ldrh  r3, [r3, lr]
  add ip, ip, r9
  add r8, r8, fp
  cmp r4, sl
  strh  r3, [r7, #0]  @ movhi
  mov r1, r8, asr #8
  mov r5, ip, asr #8
  add r7, r7, #2
  bhi .L5518
  b .L5531
.L5516:
  ldr lr, .L5544+16
  ldrh  r3, [lr, #0]
.L5520:
  add sl, sl, #1
  cmp r4, sl
  strh  r3, [r7], #2  @ movhi
  bhi .L5520
  b .L5531
.L5543:
  mov sl, #0
  b .L5515
.L5545:
  .align  2
.L5544:
  .word io_registers
  .word affine_reference_y
  .word affine_reference_x
  .word vram
  .word palette_ram_converted
  .size render_scanline_affine_base_normal, .-render_scanline_affine_base_normal
  .align  2
  .global render_scanline_affine_transparent_normal
  .type render_scanline_affine_transparent_normal, %function
render_scanline_affine_transparent_normal:
  @ args = 0, pretend = 0, frame = 28
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L5602
  mov lr, r0, asl #4
  add ip, r5, r0, asl #1
  ldrh  r4, [ip, #8]
  ldr ip, .L5602+4
  sub r0, r0, #2
  sub lr, lr, #32
  add lr, lr, r5
  ldr sl, [ip, r0, asl #2]
  ldr ip, .L5602+8
  ldrsh fp, [lr, #36]
  mov r6, r4, lsr #14
  ldr r7, .L5602+12
  mov r5, r4, lsr #12
  ldrsh r9, [lr, #32]
  mov lr, r4, asl #3
  mov r4, r4, asl #12
  ldr r8, [ip, r0, asl #2]
  and r5, r5, #2
  and lr, lr, #63488
  and r4, r4, #49152
  sub sp, sp, #28
  add ip, r6, #7
  add r4, r4, r7
  add lr, lr, r7
  mov r0, #1
  add r6, r6, #4
  cmp fp, #0
  orrne r5, r5, #1
  mov r0, r0, asl ip
  str r4, [sp, #16]
  str lr, [sp, #12]
  rsb r4, r1, r2
  str r6, [sp, #8]
  add lr, r3, r1, asl #1
  mla ip, r9, r1, r8
  mla r7, fp, r1, sl
  cmp r5, #3
  ldrls pc, [pc, r5, asl #2]
  b .L5594
  .p2align 2
.L5552:
  .word .L5548
  .word .L5549
  .word .L5550
  .word .L5551
.L5548:
  mov r3, r7, asr #8
  cmp r0, r3
  bhi .L5597
.L5594:
  add sp, sp, #28
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L5549:
  cmp r4, #0
  beq .L5594
  mov r5, ip, asr #8
  mov r1, r7, asr #8
  cmp r0, r5
  cmphi r0, r1
  movls r3, #0
  movhi r3, #1
  movls r8, r3
  bls .L5556
  b .L5600
.L5570:
  cmp r0, r2
  cmphi r0, r3
  bhi .L5571
.L5556:
  add r8, r8, #1
  add ip, ip, r9
  add r7, r7, fp
  cmp r4, r8
  mov r2, ip, asr #8
  mov r3, r7, asr #8
  add lr, lr, #2
  bne .L5570
  b .L5594
.L5550:
  sub r8, r0, #1
  and r3, r8, r7, asr #8
  cmp r0, r3
  bls .L5594
  ldr r0, [sp, #12]
  ldr r1, [sp, #8]
  mov r2, r3, lsr #3
  add r6, r0, r2, asl r1
  ldr r2, [sp, #16]
  and r3, r3, #7
  cmp r4, #0
  add r5, r2, r3, asl #3
  beq .L5594
  ldr r7, .L5602+16
  mov r0, #0
.L5583:
  and r3, r8, ip, asr #8
  ldrb  r2, [r6, r3, lsr #3]  @ zero_extendqisi2
  and r3, r3, #7
  add r3, r3, r2, asl #6
  ldrb  r1, [r3, r5]  @ zero_extendqisi2
  mov r3, r0, asl #1
  cmp r1, #0
  mov r1, r1, asl #1
  ldrneh  r1, [r1, r7]
  add r0, r0, #1
  strneh  r1, [r3, lr]  @ movhi
  cmp r4, r0
  add ip, ip, r9
  bne .L5583
  b .L5594
.L5551:
  cmp r4, #0
  sub r6, r0, #1
  beq .L5594
  mvn r3, #0
  str r3, [sp, #24]
  mov r5, #0
.L5588:
  and r3, r6, r7, asr #8
  ldr sl, [sp, #8]
  mov r2, r3, lsr #3
  mov r2, r2, asl sl
  and r1, r6, ip, asr #8
  and r0, r3, #7
  and r8, r1, #7
  add r3, r2, r1, lsr #3
  ldr r1, [sp, #24]
  str r3, [sp, #24]
  cmp r3, r1
  ldrne r2, [sp, #12]
  ldrne r1, [sp, #16]
  ldrneb  r3, [r2, r3]  @ zero_extendqisi2
  mov sl, r5, asl #1
  addne r3, r1, r3, asl #6
  strne r3, [sp, #4]
  ldr r2, [sp, #4]
  add r5, r5, #1
  add r3, r2, r0, asl #3
  ldrb  r2, [r3, r8]  @ zero_extendqisi2
  add ip, ip, r9
  cmp r2, #0
  ldrne r3, .L5602+16
  mov r1, r2, asl #1
  ldrneh  r1, [r1, r3]
  add r7, r7, fp
  strneh  r1, [sl, lr]  @ movhi
  cmp r4, r5
  bne .L5588
  b .L5594
.L5597:
  ldr r1, [sp, #12]
  ldr r5, [sp, #8]
  ldr sl, [sp, #16]
  mov r2, r3, lsr #3
  cmp r4, #0
  and r3, r3, #7
  add r6, r1, r2, asl r5
  add r8, sl, r3, asl #3
  beq .L5594
  mov r5, ip, asr #8
  cmp r0, r5
  movls r7, #0
  bls .L5563
  b .L5601
.L5561:
  cmp r0, r2
  add lr, lr, #2
  bhi .L5562
.L5563:
  add r7, r7, #1
  add ip, ip, r9
  cmp r4, r7
  mov r2, ip, asr #8
  bne .L5561
  b .L5594
.L5571:
  mov r5, r2
  mov r1, r3
.L5572:
  cmp r1, r0
  movcc r3, #0
  movcs r3, #1
  cmp r0, r5
  orrls r3, r3, #1
  cmp r3, #0
  mvneq r6, #0
  beq .L5574
  b .L5594
.L5575:
  cmp r0, r1
  cmphi r0, r5
  bls .L5594
.L5574:
  ldr r2, [sp, #8]
  mov r3, r1, lsr #3
  mov r3, r3, asl r2
  add r3, r3, r5, lsr #3
  cmp r3, r6
  and r2, r5, #7
  str r2, [sp, #0]
  ldrne r2, [sp, #12]
  mov r6, r3
  ldrneb  r3, [r2, r3]  @ zero_extendqisi2
  ldrne r2, [sp, #16]
  and sl, r1, #7
  addne r3, r2, r3, asl #6
  strne r3, [sp, #20]
  ldr r2, [sp, #20]
  add r8, r8, #1
  add r3, r2, sl, asl #3
  ldr sl, [sp, #0]
  add ip, ip, r9
  ldrb  r2, [r3, sl]  @ zero_extendqisi2
  add r7, r7, fp
  cmp r2, #0
  ldrne r3, .L5602+16
  mov r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov r1, r7, asr #8
  strneh  r2, [lr, #0]  @ movhi
  cmp r4, r8
  mov r5, ip, asr #8
  add lr, lr, #2
  bhi .L5575
  b .L5594
.L5562:
  mov r5, r2
.L5564:
  cmp r5, r0
  bcc .L5596
  b .L5594
.L5566:
  cmp r0, r5
  bls .L5594
.L5596:
  ldrb  r3, [r6, r5, lsr #3]  @ zero_extendqisi2
  and r2, r5, #7
  add r2, r2, r3, asl #6
  ldrb  r1, [r2, r8]  @ zero_extendqisi2
  add r7, r7, #1
  cmp r1, #0
  ldrne r3, .L5602+16
  mov r1, r1, asl #1
  ldrneh  r1, [r1, r3]
  add ip, ip, r9
  strneh  r1, [lr, #0]  @ movhi
  cmp r4, r7
  mov r5, ip, asr #8
  add lr, lr, #2
  bhi .L5566
  b .L5594
.L5600:
  mov r8, #0
  b .L5572
.L5601:
  mov r7, #0
  b .L5564
.L5603:
  .align  2
.L5602:
  .word io_registers
  .word affine_reference_y
  .word affine_reference_x
  .word vram
  .word palette_ram_converted
  .size render_scanline_affine_transparent_normal, .-render_scanline_affine_transparent_normal
  .align  2
  .global render_scanline_affine_base_color16
  .type render_scanline_affine_base_color16, %function
render_scanline_affine_base_color16:
  @ args = 0, pretend = 0, frame = 36
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L5672
  add r7, r0, #7
  ldrh  r6, [r5, #80]
  mov lr, r0, asl #4
  mov sl, r6, asr r0
  mov r7, r6, asr r7
  sub lr, lr, #32
  add ip, r5, r0, asl #1
  add lr, lr, r5
  ldrh  r4, [ip, #8]
  ldrsh ip, [lr, #36]
  sub sp, sp, #36
  str ip, [sp, #24]
  ldr ip, .L5672+4
  sub r0, r0, #2
  ldr ip, [ip, r0, asl #2]
  mov r8, r4, lsr #12
  str ip, [sp, #4]
  ldr ip, .L5672+8
  mov r9, r4, lsr #14
  ldr r0, [ip, r0, asl #2]
  ldrsh lr, [lr, #32]
  str r0, [sp, #8]
  ldr r0, [sp, #24]
  and r8, r8, #2
  add ip, r9, #7
  cmp r0, #0
  orrne r8, r8, #1
  mov r0, #1
  mov r5, r6, lsr #12
  str lr, [sp, #12]
  mov ip, r0, asl ip
  mov lr, r4, asl #3
  ldr r0, .L5672+12
  mov r4, r4, asl #12
  and r7, r7, #2
  mov r6, r6, asl #26
  and r5, r5, #2
  and sl, sl, #1
  and lr, lr, #63488
  and r4, r4, #49152
  orr r5, r5, r6, lsr #31
  orr sl, sl, r7
  add r4, r4, r0
  add lr, lr, r0
  rsb fp, r1, r2
  add r7, r3, r1, asl #1
  ldr r6, [sp, #8]
  ldr r2, [sp, #12]
  ldr r0, [sp, #4]
  ldr r3, [sp, #24]
  mov r5, r5, asl #9
  mov sl, sl, asl #9
  str r4, [sp, #32]
  str r5, [sp, #16]
  str sl, [sp, #20]
  add r9, r9, #4
  str lr, [sp, #28]
  mla r6, r2, r1, r6
  mla r0, r3, r1, r0
  cmp r8, #3
  ldrls pc, [pc, r8, asl #2]
  b .L5661
  .p2align 2
.L5610:
  .word .L5606
  .word .L5607
  .word .L5608
  .word .L5609
.L5608:
  sub lr, ip, #1
  and r3, lr, r0, asr #8
  cmp ip, r3
  bhi .L5669
.L5661:
  add sp, sp, #36
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L5606:
  mov r3, r0, asr #8
  cmp ip, r3
  movls r0, #0
  bls .L5617
  ldr r0, [sp, #28]
  ldr r1, [sp, #32]
  mov r2, r3, lsr #3
  cmp fp, #0
  and r3, r3, #7
  add r9, r0, r2, asl r9
  add r4, r1, r3, asl #3
  beq .L5661
  mov r2, r6, asr #8
  cmp ip, r2
  movhi r0, #0
  bhi .L5664
  ldr r2, [sp, #16]
  mov r0, #0
  mov r3, r2, asl #16
  mov r3, r3, lsr #16
  b .L5625
.L5623:
  cmp ip, r2
  bhi .L5664
.L5625:
  ldr r1, [sp, #12]
  add r0, r0, #1
  add r6, r6, r1
  cmp fp, r0
  mov r2, r6, asr #8
  strh  r3, [r7], #2  @ movhi
  bne .L5623
.L5617:
  cmp r0, fp
  bcs .L5661
  ldr r2, [sp, #16]
  mov r1, #0
  mov r3, r2, asl #16
  mov r3, r3, lsr #16
  rsb r2, r0, fp
.L5632:
  add r1, r1, #1
  cmp r1, r2
  strh  r3, [r7], #2  @ movhi
  bne .L5632
  b .L5661
.L5607:
  cmp fp, #0
  beq .L5661
  mov r1, r6, asr #8
  mov r2, r0, asr #8
  cmp ip, r1
  cmphi ip, r2
  ldrls r4, [sp, #16]
  movls r8, #0
  movhi r8, #1
  movls r3, r4, asl #16
  movls r1, r3, lsr #16
  bls .L5614
  b .L5671
.L5633:
  cmp ip, r2
  cmphi ip, r3
  bhi .L5634
.L5614:
  ldr r3, [sp, #12]
  ldr r4, [sp, #24]
  add r8, r8, #1
  add r6, r6, r3
  add r0, r0, r4
  cmp fp, r8
  strh  r1, [r7, #0]  @ movhi
  mov r2, r6, asr #8
  mov r3, r0, asr #8
  add r7, r7, #2
  bne .L5633
  b .L5661
.L5609:
  cmp fp, #0
  sub sl, ip, #1
  beq .L5661
  mvn r5, #0
  mov r4, #0
.L5654:
  and r3, sl, r0, asr #8
  mov r2, r3, lsr #3
  mov r2, r2, asl r9
  and r1, sl, r6, asr #8
  add ip, r2, r1, lsr #3
  cmp ip, r5
  and r8, r1, #7
  ldrne r1, [sp, #28]
  and lr, r3, #7
  ldrne r2, [sp, #32]
  ldrneb  r3, [r1, ip]  @ zero_extendqisi2
  add r4, r4, #1
  addne r3, r2, r3, asl #6
  strne r3, [sp, #0]
  ldr r1, [sp, #0]
  mov r5, ip
  add r3, r1, lr, asl #3
  ldrb  r2, [r3, r8]  @ zero_extendqisi2
  ldr r3, [sp, #20]
  cmp r2, #0
  orr r1, r2, r3
  ldreq r1, [sp, #16]
  ldr r2, [sp, #12]
  ldr r3, [sp, #24]
  cmp fp, r4
  strh  r1, [r7, #0]  @ movhi
  add r6, r6, r2
  add r0, r0, r3
  add r7, r7, #2
  bne .L5654
  b .L5661
.L5669:
  ldr r4, [sp, #28]
  ldr ip, [sp, #32]
  mov r2, r3, lsr #3
  cmp fp, #0
  and r3, r3, #7
  add r9, r4, r2, asl r9
  add r4, ip, r3, asl #3
  beq .L5661
  mov r0, #0
.L5648:
  and r3, lr, r6, asr #8
  ldrb  r1, [r9, r3, lsr #3]  @ zero_extendqisi2
  and r3, r3, #7
  add r3, r3, r1, asl #6
  ldrb  r2, [r3, r4]  @ zero_extendqisi2
  ldr r1, [sp, #20]
  cmp r2, #0
  add r0, r0, #1
  orr r2, r2, r1
  ldr r3, [sp, #12]
  ldreq r2, [sp, #16]
  cmp fp, r0
  strh  r2, [r7, #0]  @ movhi
  add r6, r6, r3
  add r7, r7, #2
  bne .L5648
  b .L5661
.L5627:
  cmp ip, r2
  bls .L5617
.L5664:
  ldrb  r3, [r9, r2, lsr #3]  @ zero_extendqisi2
  and r2, r2, #7
  add r2, r2, r3, asl #6
  ldrb  r1, [r2, r4]  @ zero_extendqisi2
  ldr r2, [sp, #20]
  cmp r1, #0
  orr r1, r1, r2
  strneh  r1, [r7, #0]  @ movhi
  ldreq r3, [sp, #16]
  ldr r1, [sp, #12]
  add r0, r0, #1
  streqh  r3, [r7, #0]  @ movhi
  add r6, r6, r1
  cmp fp, r0
  add r7, r7, #2
  mov r2, r6, asr #8
  bhi .L5627
  b .L5617
.L5634:
  mov r1, r2
  mov r2, r3
.L5635:
  cmp r2, ip
  cmpcc r1, ip
  mvncc r4, #0
  bcc .L5639
  b .L5636
.L5638:
  cmp ip, r2
  cmphi ip, r1
  bls .L5636
.L5639:
  mov r3, r2, lsr #3
  mov r3, r3, asl r9
  and lr, r2, #7
  and r2, r1, #7
  add r1, r3, r1, lsr #3
  cmp r1, r4
  ldrne r4, [sp, #28]
  add r8, r8, #1
  ldrneb  r3, [r4, r1]  @ zero_extendqisi2
  ldrne r4, [sp, #32]
  addne r5, r4, r3, asl #6
  add r3, r5, lr, asl #3
  ldrb  r2, [r3, r2]  @ zero_extendqisi2
  ldr r3, [sp, #20]
  cmp r2, #0
  orr r2, r2, r3
  strneh  r2, [r7, #0]  @ movhi
  ldreq r4, [sp, #16]
  ldr r2, [sp, #12]
  ldr r3, [sp, #24]
  streqh  r4, [r7, #0]  @ movhi
  add r6, r6, r2
  add r0, r0, r3
  cmp fp, r8
  mov r4, r1
  add r7, r7, #2
  mov r1, r6, asr #8
  mov r2, r0, asr #8
  bhi .L5638
  b .L5661
.L5636:
  ldr r4, [sp, #16]
  mov r3, r4, asl #16
  mov r3, r3, lsr #16
.L5640:
  add r8, r8, #1
  cmp fp, r8
  strh  r3, [r7], #2  @ movhi
  bhi .L5640
  b .L5661
.L5671:
  mov r8, #0
  b .L5635
.L5673:
  .align  2
.L5672:
  .word io_registers
  .word affine_reference_y
  .word affine_reference_x
  .word vram
  .size render_scanline_affine_base_color16, .-render_scanline_affine_base_color16
  .align  2
  .global render_scanline_affine_transparent_color16
  .type render_scanline_affine_transparent_color16, %function
render_scanline_affine_transparent_color16:
  @ args = 0, pretend = 0, frame = 36
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L5730
  add r7, r0, #7
  ldrh  r6, [r5, #80]
  add ip, r5, r0, asl #1
  mov r7, r6, asr r7
  mov r6, r6, asr r0
  ldrh  r4, [ip, #8]
  mov lr, r0, asl #4
  ldr ip, .L5730+4
  sub r0, r0, #2
  sub lr, lr, #32
  add lr, lr, r5
  ldr ip, [ip, r0, asl #2]
  sub sp, sp, #36
  ldrsh r9, [lr, #36]
  mov r8, r4, lsr #14
  mov r5, r4, lsr #12
  str ip, [sp, #8]
  ldrsh fp, [lr, #32]
  ldr ip, .L5730+8
  ldr sl, .L5730+12
  mov lr, r4, asl #3
  mov r4, r4, asl #12
  str r9, [sp, #16]
  and r4, r4, #49152
  ldr r9, [ip, r0, asl #2]
  and r7, r7, #2
  ldr ip, [sp, #16]
  add r4, r4, sl
  and r6, r6, #1
  orr r6, r6, r7
  and r5, r5, #2
  and lr, lr, #63488
  str r4, [sp, #24]
  ldr r7, [sp, #8]
  rsb r4, r1, r2
  ldr r2, [sp, #16]
  add lr, lr, sl
  cmp ip, #0
  orrne r5, r5, #1
  mov r0, #1
  add ip, r8, #7
  mov r6, r6, asl #9
  mov r0, r0, asl ip
  str lr, [sp, #20]
  str r6, [sp, #12]
  add r8, r8, #4
  add lr, r3, r1, asl #1
  mla ip, fp, r1, r9
  mla r7, r2, r1, r7
  cmp r5, #3
  ldrls pc, [pc, r5, asl #2]
  b .L5722
  .p2align 2
.L5680:
  .word .L5676
  .word .L5677
  .word .L5678
  .word .L5679
.L5676:
  mov r3, r7, asr #8
  cmp r0, r3
  bhi .L5725
.L5722:
  add sp, sp, #36
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L5677:
  cmp r4, #0
  beq .L5722
  mov r5, ip, asr #8
  mov r1, r7, asr #8
  cmp r0, r5
  cmphi r0, r1
  movls r3, #0
  movhi r3, #1
  movls sl, r3
  bls .L5684
  b .L5728
.L5698:
  cmp r0, r2
  cmphi r0, r3
  bhi .L5699
.L5684:
  ldr r3, [sp, #16]
  add sl, sl, #1
  add ip, ip, fp
  add r7, r7, r3
  cmp r4, sl
  mov r2, ip, asr #8
  mov r3, r7, asr #8
  add lr, lr, #2
  bne .L5698
  b .L5722
.L5678:
  sub r6, r0, #1
  and r3, r6, r7, asr #8
  cmp r0, r3
  bls .L5722
  ldr r9, [sp, #20]
  ldr r0, [sp, #24]
  mov r2, r3, lsr #3
  cmp r4, #0
  and r3, r3, #7
  add r8, r9, r2, asl r8
  add r5, r0, r3, asl #3
  beq .L5722
  mov r0, #0
.L5711:
  and r3, r6, ip, asr #8
  ldrb  r2, [r8, r3, lsr #3]  @ zero_extendqisi2
  and r3, r3, #7
  add r3, r3, r2, asl #6
  ldrb  r1, [r3, r5]  @ zero_extendqisi2
  ldr r2, [sp, #12]
  cmp r1, #0
  mov r3, r0, asl #1
  orr r1, r1, r2
  add r0, r0, #1
  strneh  r1, [r3, lr]  @ movhi
  cmp r4, r0
  add ip, ip, fp
  bne .L5711
  b .L5722
.L5679:
  cmp r4, #0
  sub r6, r0, #1
  beq .L5722
  mvn r3, #0
  str r3, [sp, #32]
  mov sl, #0
.L5716:
  and r3, r6, r7, asr #8
  mov r2, r3, lsr #3
  mov r2, r2, asl r8
  and r1, r6, ip, asr #8
  and r9, r3, #7
  and r5, r1, #7
  add r3, r2, r1, lsr #3
  ldr r1, [sp, #32]
  str r3, [sp, #32]
  cmp r3, r1
  ldrne r2, [sp, #20]
  ldrne r1, [sp, #24]
  ldrneb  r3, [r2, r3]  @ zero_extendqisi2
  ldr r0, [sp, #16]
  addne r3, r1, r3, asl #6
  strne r3, [sp, #4]
  ldr r2, [sp, #4]
  add r7, r7, r0
  add r3, r2, r9, asl #3
  ldrb  r2, [r3, r5]  @ zero_extendqisi2
  ldr r3, [sp, #12]
  mov r0, sl, asl #1
  cmp r2, #0
  add sl, sl, #1
  orr r1, r2, r3
  strneh  r1, [r0, lr]  @ movhi
  cmp r4, sl
  add ip, ip, fp
  bne .L5716
  b .L5722
.L5725:
  ldr r9, [sp, #20]
  ldr r1, [sp, #24]
  mov r2, r3, lsr #3
  cmp r4, #0
  and r3, r3, #7
  add r8, r9, r2, asl r8
  add r6, r1, r3, asl #3
  beq .L5722
  mov r5, ip, asr #8
  cmp r0, r5
  movls r7, #0
  bls .L5691
  b .L5729
.L5689:
  cmp r0, r2
  add lr, lr, #2
  bhi .L5690
.L5691:
  add r7, r7, #1
  add ip, ip, fp
  cmp r4, r7
  mov r2, ip, asr #8
  bne .L5689
  b .L5722
.L5699:
  mov r5, r2
  mov r1, r3
.L5700:
  cmp r1, r0
  movcc r3, #0
  movcs r3, #1
  cmp r0, r5
  orrls r3, r3, #1
  cmp r3, #0
  mvneq r6, #0
  beq .L5702
  b .L5722
.L5703:
  cmp r0, r1
  cmphi r0, r5
  bls .L5722
.L5702:
  mov r3, r1, lsr #3
  mov r3, r3, asl r8
  add r3, r3, r5, lsr #3
  cmp r3, r6
  and r2, r5, #7
  str r2, [sp, #0]
  ldrne r2, [sp, #20]
  mov r6, r3
  ldrneb  r3, [r2, r3]  @ zero_extendqisi2
  ldrne r2, [sp, #24]
  ldr r9, [sp, #16]
  addne r3, r2, r3, asl #6
  strne r3, [sp, #28]
  ldr r2, [sp, #28]
  add r7, r7, r9
  and r9, r1, #7
  add r3, r2, r9, asl #3
  ldr r9, [sp, #0]
  add sl, sl, #1
  ldrb  r2, [r3, r9]  @ zero_extendqisi2
  ldr r3, [sp, #12]
  cmp r2, #0
  orr r2, r2, r3
  strneh  r2, [lr, #0]  @ movhi
  add ip, ip, fp
  cmp r4, sl
  mov r1, r7, asr #8
  mov r5, ip, asr #8
  add lr, lr, #2
  bhi .L5703
  b .L5722
.L5690:
  mov r5, r2
.L5692:
  cmp r5, r0
  bcc .L5724
  b .L5722
.L5694:
  cmp r0, r5
  bls .L5722
.L5724:
  ldrb  r3, [r8, r5, lsr #3]  @ zero_extendqisi2
  and r2, r5, #7
  add r2, r2, r3, asl #6
  ldrb  r1, [r2, r6]  @ zero_extendqisi2
  ldr r2, [sp, #12]
  cmp r1, #0
  add r7, r7, #1
  orr r1, r1, r2
  strneh  r1, [lr, #0]  @ movhi
  add ip, ip, fp
  cmp r4, r7
  mov r5, ip, asr #8
  add lr, lr, #2
  bhi .L5694
  b .L5722
.L5728:
  mov sl, #0
  b .L5700
.L5729:
  mov r7, #0
  b .L5692
.L5731:
  .align  2
.L5730:
  .word io_registers
  .word affine_reference_y
  .word affine_reference_x
  .word vram
  .size render_scanline_affine_transparent_color16, .-render_scanline_affine_transparent_color16
  .align  2
  .global render_scanline_affine_base_color32
  .type render_scanline_affine_base_color32, %function
render_scanline_affine_base_color32:
  @ args = 0, pretend = 0, frame = 36
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L5799
  add r7, r0, #7
  ldrh  r6, [r5, #80]
  add ip, r5, r0, asl #1
  mov sl, r6, asr r0
  mov r7, r6, asr r7
  ldrh  r4, [ip, #8]
  mov lr, r0, asl #4
  ldr ip, .L5799+4
  sub r0, r0, #2
  sub lr, lr, #32
  ldr ip, [ip, r0, asl #2]
  add lr, lr, r5
  sub sp, sp, #36
  ldrsh r5, [lr, #36]
  str ip, [sp, #4]
  ldr ip, .L5799+8
  str r5, [sp, #24]
  ldr r0, [ip, r0, asl #2]
  mov r8, r4, lsr #12
  ldr ip, [sp, #24]
  mov r9, r4, lsr #14
  ldrsh lr, [lr, #32]
  and r8, r8, #2
  str r0, [sp, #8]
  cmp ip, #0
  orrne r8, r8, #1
  mov r0, #1
  add ip, r9, #7
  mov r5, r6, lsr #12
  str lr, [sp, #12]
  mov ip, r0, asl ip
  mov lr, r4, asl #3
  ldr r0, .L5799+12
  mov r4, r4, asl #12
  and r7, r7, #2
  mov r6, r6, asl #26
  and r5, r5, #2
  and sl, sl, #1
  and lr, lr, #63488
  and r4, r4, #49152
  orr r5, r5, r6, lsr #31
  orr sl, sl, r7
  add r4, r4, r0
  add lr, lr, r0
  rsb fp, r1, r2
  add r6, r3, r1, asl #2
  ldr r7, [sp, #8]
  ldr r2, [sp, #12]
  ldr r0, [sp, #4]
  ldr r3, [sp, #24]
  mov r5, r5, asl #9
  mov sl, sl, asl #9
  str r4, [sp, #32]
  str r5, [sp, #16]
  str sl, [sp, #20]
  add r9, r9, #4
  str lr, [sp, #28]
  mla r7, r2, r1, r7
  mla r0, r3, r1, r0
  cmp r8, #3
  ldrls pc, [pc, r8, asl #2]
  b .L5788
  .p2align 2
.L5738:
  .word .L5734
  .word .L5735
  .word .L5736
  .word .L5737
.L5736:
  sub lr, ip, #1
  and r3, lr, r0, asr #8
  cmp ip, r3
  bhi .L5796
.L5788:
  add sp, sp, #36
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L5734:
  mov r3, r0, asr #8
  cmp ip, r3
  movls r0, #0
  bls .L5745
  ldr r4, [sp, #28]
  ldr r5, [sp, #32]
  mov r2, r3, lsr #3
  cmp fp, #0
  and r3, r3, #7
  add r9, r4, r2, asl r9
  add r4, r5, r3, asl #3
  beq .L5788
  mov r2, r7, asr #8
  cmp ip, r2
  movhi r0, #0
  movls r0, #0
  bls .L5751
  b .L5793
.L5752:
  cmp ip, r2
  bhi .L5793
.L5751:
  ldr lr, [sp, #12]
  add r0, r0, #1
  ldr r1, [sp, #16]
  add r7, r7, lr
  cmp fp, r0
  mov r2, r7, asr #8
  str r1, [r6], #4
  bne .L5752
.L5745:
  cmp r0, fp
  bcs .L5788
  rsb r2, r0, fp
  ldr r0, [sp, #16]
  mov r3, #0
.L5760:
  add r3, r3, #1
  cmp r2, r3
  str r0, [r6], #4
  bne .L5760
  b .L5788
.L5735:
  cmp fp, #0
  beq .L5788
  mov r1, r7, asr #8
  mov r2, r0, asr #8
  cmp ip, r1
  cmphi ip, r2
  movls r3, #0
  movhi r3, #1
  movls r8, r3
  bls .L5742
  b .L5798
.L5761:
  cmp ip, r2
  cmphi ip, r3
  bhi .L5762
.L5742:
  ldr r2, [sp, #24]
  ldr r1, [sp, #12]
  add r8, r8, #1
  ldr r4, [sp, #16]
  add r0, r0, r2
  add r7, r7, r1
  cmp fp, r8
  str r4, [r6, #0]
  mov r2, r7, asr #8
  mov r3, r0, asr #8
  add r6, r6, #4
  bne .L5761
  b .L5788
.L5737:
  cmp fp, #0
  sub sl, ip, #1
  beq .L5788
  mvn r5, #0
  mov r4, #0
.L5781:
  and r3, sl, r0, asr #8
  mov r2, r3, lsr #3
  mov r2, r2, asl r9
  and r1, sl, r7, asr #8
  add ip, r2, r1, lsr #3
  cmp ip, r5
  ldrne r5, [sp, #28]
  and lr, r3, #7
  and r8, r1, #7
  ldrneb  r3, [r5, ip]  @ zero_extendqisi2
  ldrne r1, [sp, #32]
  add r4, r4, #1
  addne r3, r1, r3, asl #6
  strne r3, [sp, #0]
  ldr r2, [sp, #0]
  add r3, r2, lr, asl #3
  ldrb  r2, [r3, r8]  @ zero_extendqisi2
  ldr r3, [sp, #20]
  cmp r2, #0
  ldreq r5, [sp, #16]
  orr r1, r3, r2
  strne r1, [r6, #0]
  ldr lr, [sp, #12]
  ldr r1, [sp, #24]
  streq r5, [r6, #0]
  cmp fp, r4
  add r7, r7, lr
  add r0, r0, r1
  add r6, r6, #4
  mov r5, ip
  bne .L5781
  b .L5788
.L5796:
  ldr ip, [sp, #28]
  ldr r0, [sp, #32]
  mov r2, r3, lsr #3
  cmp fp, #0
  and r3, r3, #7
  add r9, ip, r2, asl r9
  add r4, r0, r3, asl #3
  beq .L5788
  mov r0, #0
.L5775:
  and r3, lr, r7, asr #8
  ldrb  r1, [r9, r3, lsr #3]  @ zero_extendqisi2
  and r3, r3, #7
  add r3, r3, r1, asl #6
  ldrb  r2, [r3, r4]  @ zero_extendqisi2
  ldr r1, [sp, #20]
  cmp r2, #0
  orr r3, r1, r2
  ldreq r2, [sp, #16]
  strne r3, [r6, #0]
  add r0, r0, #1
  ldr r3, [sp, #12]
  streq r2, [r6, #0]
  cmp fp, r0
  add r7, r7, r3
  add r6, r6, #4
  bne .L5775
  b .L5788
.L5755:
  cmp ip, r2
  bls .L5745
.L5793:
  ldrb  r3, [r9, r2, lsr #3]  @ zero_extendqisi2
  and r2, r2, #7
  add r2, r2, r3, asl #6
  ldrb  r1, [r2, r4]  @ zero_extendqisi2
  ldr r3, [sp, #20]
  cmp r1, #0
  ldreq r5, [sp, #16]
  ldr lr, [sp, #12]
  orr r2, r3, r1
  add r0, r0, #1
  strne r2, [r6, #0]
  streq r5, [r6, #0]
  add r7, r7, lr
  cmp fp, r0
  add r6, r6, #4
  mov r2, r7, asr #8
  bhi .L5755
  b .L5745
.L5762:
  mov r1, r2
  mov r2, r3
.L5763:
  cmp r2, ip
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  mvneq r5, #0
  beq .L5767
  b .L5789
.L5766:
  cmp ip, r2
  cmphi ip, r1
  bls .L5789
.L5767:
  mov r3, r2, lsr #3
  mov r3, r3, asl r9
  and lr, r2, #7
  and r2, r1, #7
  add r1, r3, r1, lsr #3
  cmp r1, r5
  ldrne r4, [sp, #28]
  ldrne r5, [sp, #32]
  ldrneb  r3, [r4, r1]  @ zero_extendqisi2
  add r8, r8, #1
  addne r4, r5, r3, asl #6
  add r3, r4, lr, asl #3
  ldrb  r2, [r3, r2]  @ zero_extendqisi2
  ldr lr, [sp, #20]
  cmp r2, #0
  orr r3, lr, r2
  strne r3, [r6, #0]
  ldreq r2, [sp, #16]
  ldr r5, [sp, #24]
  ldr r3, [sp, #12]
  streq r2, [r6, #0]
  add r0, r0, r5
  add r7, r7, r3
  cmp fp, r8
  mov r5, r1
  add r6, r6, #4
  mov r1, r7, asr #8
  mov r2, r0, asr #8
  bhi .L5766
  b .L5788
.L5789:
  add r8, r8, #1
  ldr r5, [sp, #16]
  cmp fp, r8
  str r5, [r6], #4
  bls .L5788
  add r8, r8, #1
  ldr r5, [sp, #16]
  cmp fp, r8
  str r5, [r6], #4
  bhi .L5789
  b .L5788
.L5798:
  mov r8, #0
  b .L5763
.L5800:
  .align  2
.L5799:
  .word io_registers
  .word affine_reference_y
  .word affine_reference_x
  .word vram
  .size render_scanline_affine_base_color32, .-render_scanline_affine_base_color32
  .align  2
  .global render_scanline_affine_transparent_color32
  .type render_scanline_affine_transparent_color32, %function
render_scanline_affine_transparent_color32:
  @ args = 0, pretend = 0, frame = 32
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L5857
  add r7, r0, #7
  ldrh  r6, [r5, #80]
  add ip, r5, r0, asl #1
  mov r7, r6, asr r7
  mov r6, r6, asr r0
  ldrh  r4, [ip, #8]
  mov lr, r0, asl #4
  ldr ip, .L5857+4
  sub r0, r0, #2
  sub lr, lr, #32
  add lr, lr, r5
  ldr ip, [ip, r0, asl #2]
  sub sp, sp, #32
  ldrsh r9, [lr, #36]
  mov r8, r4, lsr #14
  mov r5, r4, lsr #12
  str ip, [sp, #8]
  ldrsh fp, [lr, #32]
  ldr ip, .L5857+8
  ldr sl, .L5857+12
  mov lr, r4, asl #3
  mov r4, r4, asl #12
  str r9, [sp, #16]
  and r4, r4, #49152
  ldr r9, [ip, r0, asl #2]
  and r7, r7, #2
  ldr ip, [sp, #16]
  add r4, r4, sl
  and r6, r6, #1
  orr r6, r6, r7
  and r5, r5, #2
  and lr, lr, #63488
  str r4, [sp, #24]
  ldr r7, [sp, #8]
  rsb r4, r1, r2
  ldr r2, [sp, #16]
  add lr, lr, sl
  cmp ip, #0
  orrne r5, r5, #1
  mov r0, #1
  add ip, r8, #7
  mov r6, r6, asl #9
  mov r0, r0, asl ip
  str lr, [sp, #20]
  str r6, [sp, #12]
  add r8, r8, #4
  add lr, r3, r1, asl #2
  mla ip, fp, r1, r9
  mla r7, r2, r1, r7
  cmp r5, #3
  ldrls pc, [pc, r5, asl #2]
  b .L5849
  .p2align 2
.L5807:
  .word .L5803
  .word .L5804
  .word .L5805
  .word .L5806
.L5803:
  mov r3, r7, asr #8
  cmp r0, r3
  bhi .L5852
.L5849:
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L5804:
  cmp r4, #0
  beq .L5849
  mov r5, ip, asr #8
  mov r1, r7, asr #8
  cmp r0, r5
  cmphi r0, r1
  movls r3, #0
  movhi r3, #1
  movls sl, r3
  bls .L5811
  b .L5855
.L5825:
  cmp r0, r2
  cmphi r0, r3
  bhi .L5826
.L5811:
  ldr r3, [sp, #16]
  add sl, sl, #1
  add ip, ip, fp
  add r7, r7, r3
  cmp r4, sl
  mov r2, ip, asr #8
  mov r3, r7, asr #8
  add lr, lr, #4
  bne .L5825
  b .L5849
.L5805:
  sub r6, r0, #1
  and r3, r6, r7, asr #8
  cmp r0, r3
  bls .L5849
  ldr r0, [sp, #20]
  ldr r1, [sp, #24]
  mov r2, r3, lsr #3
  cmp r4, #0
  and r3, r3, #7
  add r8, r0, r2, asl r8
  add r5, r1, r3, asl #3
  beq .L5849
  mov r0, #0
.L5838:
  and r3, r6, ip, asr #8
  ldrb  r2, [r8, r3, lsr #3]  @ zero_extendqisi2
  and r3, r3, #7
  add r3, r3, r2, asl #6
  ldrb  r1, [r3, r5]  @ zero_extendqisi2
  ldr r2, [sp, #12]
  cmp r1, #0
  orr r3, r2, r1
  strne r3, [lr, r0, asl #2]
  add r0, r0, #1
  cmp r4, r0
  add ip, ip, fp
  bne .L5838
  b .L5849
.L5806:
  cmp r4, #0
  sub r0, r0, #1
  beq .L5849
  mov r9, #0
  mvn r6, #0
.L5843:
  and r3, r0, r7, asr #8
  mov r2, r3, lsr #3
  mov r2, r2, asl r8
  and r1, r0, ip, asr #8
  and sl, r3, #7
  add r3, r2, r1, lsr #3
  cmp r3, r6
  ldrne r2, [sp, #20]
  and r5, r1, #7
  ldr r1, [sp, #16]
  mov r6, r3
  add r7, r7, r1
  ldrneb  r3, [r2, r3]  @ zero_extendqisi2
  ldrne r1, [sp, #24]
  add ip, ip, fp
  addne r3, r1, r3, asl #6
  strne r3, [sp, #4]
  ldr r2, [sp, #4]
  add r3, r2, sl, asl #3
  ldrb  r2, [r3, r5]  @ zero_extendqisi2
  ldr r3, [sp, #12]
  cmp r2, #0
  orr r1, r3, r2
  strne r1, [lr, r9, asl #2]
  add r9, r9, #1
  cmp r4, r9
  bne .L5843
  b .L5849
.L5852:
  ldr r9, [sp, #20]
  ldr r1, [sp, #24]
  mov r2, r3, lsr #3
  cmp r4, #0
  and r3, r3, #7
  add r8, r9, r2, asl r8
  add r6, r1, r3, asl #3
  beq .L5849
  mov r5, ip, asr #8
  cmp r0, r5
  movls r7, #0
  bls .L5818
  b .L5856
.L5816:
  cmp r0, r2
  add lr, lr, #4
  bhi .L5817
.L5818:
  add r7, r7, #1
  add ip, ip, fp
  cmp r4, r7
  mov r2, ip, asr #8
  bne .L5816
  b .L5849
.L5826:
  mov r5, r2
  mov r1, r3
.L5827:
  cmp r1, r0
  movcc r3, #0
  movcs r3, #1
  cmp r0, r5
  orrls r3, r3, #1
  cmp r3, #0
  mvneq r6, #0
  beq .L5829
  b .L5849
.L5830:
  cmp r0, r1
  cmphi r0, r5
  bls .L5849
.L5829:
  mov r3, r1, lsr #3
  mov r3, r3, asl r8
  add r3, r3, r5, lsr #3
  cmp r3, r6
  and r2, r5, #7
  str r2, [sp, #0]
  ldrne r2, [sp, #20]
  mov r6, r3
  ldrneb  r3, [r2, r3]  @ zero_extendqisi2
  ldrne r2, [sp, #24]
  ldr r9, [sp, #16]
  addne r3, r2, r3, asl #6
  strne r3, [sp, #28]
  ldr r2, [sp, #28]
  add r7, r7, r9
  and r9, r1, #7
  add r3, r2, r9, asl #3
  ldr r9, [sp, #0]
  add sl, sl, #1
  ldrb  r2, [r3, r9]  @ zero_extendqisi2
  ldr r9, [sp, #12]
  cmp r2, #0
  orr r3, r9, r2
  strne r3, [lr, #0]
  add ip, ip, fp
  cmp r4, sl
  mov r1, r7, asr #8
  mov r5, ip, asr #8
  add lr, lr, #4
  bhi .L5830
  b .L5849
.L5817:
  mov r5, r2
.L5819:
  cmp r5, r0
  bcc .L5851
  b .L5849
.L5821:
  cmp r0, r5
  bls .L5849
.L5851:
  ldrb  r3, [r8, r5, lsr #3]  @ zero_extendqisi2
  and r2, r5, #7
  add r2, r2, r3, asl #6
  ldrb  r1, [r2, r6]  @ zero_extendqisi2
  ldr r2, [sp, #12]
  cmp r1, #0
  add r7, r7, #1
  orr r3, r2, r1
  strne r3, [lr, #0]
  add ip, ip, fp
  cmp r4, r7
  mov r5, ip, asr #8
  add lr, lr, #4
  bhi .L5821
  b .L5849
.L5855:
  mov sl, #0
  b .L5827
.L5856:
  mov r7, #0
  b .L5819
.L5858:
  .align  2
.L5857:
  .word io_registers
  .word affine_reference_y
  .word affine_reference_x
  .word vram
  .size render_scanline_affine_transparent_color32, .-render_scanline_affine_transparent_color32
  .align  2
  .global render_scanline_affine_base_alpha
  .type render_scanline_affine_base_alpha, %function
render_scanline_affine_base_alpha:
  @ args = 0, pretend = 0, frame = 32
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r7, .L5933
  add lr, r0, #7
  ldrh  ip, [r7, #80]
  sub sp, sp, #32
  mov lr, ip, asr lr
  mov r4, ip, asr r0
  mov r5, ip, lsr #12
  and r5, r5, #2
  mov ip, ip, asl #26
  orr r5, r5, ip, lsr #31
  and r4, r4, #1
  and lr, lr, #2
  mov ip, r5, asl #25
  orr r4, r4, lr
  orr r4, ip, r4, asl #9
  mov r5, r5, asl #9
  tst r4, #512
  mov r6, r0
  str r4, [sp, #12]
  mov r8, r1
  mov sl, r2
  stmib sp, {r3, r5}  @ phole stm
  beq .L5928
  add r3, r7, r0, asl #1
  ldrh  r1, [r3, #8]
  ldr r3, .L5933+4
  mov r2, r0, asl #4
  sub r0, r0, #2
  ldr r6, [r3, r0, asl #2]
  ldr r3, .L5933+8
  mov lr, r1, lsr #14
  ldr r5, [r3, r0, asl #2]
  ldr r4, .L5933+12
  mov ip, r1, lsr #12
  mov r0, r1, asl #3
  sub r2, r2, #32
  mov r1, r1, asl #12
  add r2, r2, r7
  and r1, r1, #49152
  ldrsh fp, [r2, #36]
  add r1, r1, r4
  ldrsh r9, [r2, #32]
  and ip, ip, #2
  and r0, r0, #63488
  str r1, [sp, #24]
  ldr r1, [sp, #4]
  add r0, r0, r4
  add r2, lr, #7
  mov r3, #1
  add lr, lr, #4
  cmp fp, #0
  orrne ip, ip, #1
  str r0, [sp, #20]
  mov r7, r3, asl r2
  mla r0, r9, r8, r5
  rsb sl, r8, sl
  str lr, [sp, #16]
  add r4, r1, r8, asl #2
  mla r5, fp, r8, r6
  cmp ip, #3
  ldrls pc, [pc, ip, asl #2]
  b .L5918
  .p2align 2
.L5867:
  .word .L5863
  .word .L5864
  .word .L5865
  .word .L5866
.L5919:
  add ip, ip, #1
  ldr r1, [sp, #8]
  cmp sl, ip
  str r1, [r4], #4
  bhi .L5919
.L5918:
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L5928:
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_affine_base_color32
.L5863:
  mov r1, r5, asr #8
  cmp r7, r1
  movls ip, #0
  bls .L5874
  ldr r6, [sp, #20]
  ldr r8, [sp, #16]
  ldr ip, [sp, #24]
  mov r2, r1, lsr #3
  and r3, r1, #7
  cmp sl, #0
  add lr, r6, r2, asl r8
  add r5, ip, r3, asl #3
  beq .L5918
  mov r2, r0, asr #8
  cmp r7, r2
  movls ip, #0
  bls .L5881
  b .L5931
.L5879:
  cmp r7, r2
  bhi .L5882
.L5881:
  add ip, ip, #1
  ldr r1, [sp, #8]
  add r0, r0, r9
  cmp sl, ip
  mov r2, r0, asr #8
  str r1, [r4], #4
  bne .L5879
.L5874:
  cmp ip, sl
  bcs .L5918
  ldr r8, [sp, #8]
  rsb r2, ip, sl
  mov r3, #0
.L5890:
  add r3, r3, #1
  cmp r2, r3
  str r8, [r4], #4
  bne .L5890
  b .L5918
.L5866:
  sub r7, r7, #1
  cmp sl, #0
  str r7, [sp, #28]
  beq .L5918
  mvn r8, #0
  mov r7, #0
.L5911:
  ldr r2, [sp, #28]
  ldr r6, [sp, #16]
  and r3, r2, r5, asr #8
  mov r2, r3, lsr #3
  mov r2, r2, asl r6
  ldr ip, [sp, #28]
  and lr, r3, #7
  and r1, ip, r0, asr #8
  add ip, r2, r1, lsr #3
  cmp ip, r8
  and r6, r1, #7
  ldrne r1, [sp, #20]
  ldrne r2, [sp, #24]
  ldrneb  r3, [r1, ip]  @ zero_extendqisi2
  add r7, r7, #1
  addne r3, r2, r3, asl #6
  strne r3, [sp, #0]
  ldr r8, [sp, #0]
  add r0, r0, r9
  add r3, r8, lr, asl #3
  ldrb  r2, [r3, r6]  @ zero_extendqisi2
  ldr lr, [sp, #12]
  cmp r2, #0
  orr r1, lr, r2
  ldreq r1, [sp, #8]
  cmp sl, r7
  str r1, [r4, #0]
  add r5, r5, fp
  add r4, r4, #4
  mov r8, ip
  bne .L5911
  b .L5918
.L5865:
  sub r6, r7, #1
  and r1, r6, r5, asr #8
  cmp r7, r1
  bls .L5918
  mov r2, r1, lsr #3
  and r3, r1, #7
  ldr ip, [sp, #20]
  ldr r1, [sp, #16]
  cmp sl, #0
  add lr, ip, r2, asl r1
  ldr r2, [sp, #24]
  add r5, r2, r3, asl #3
  beq .L5918
  mov ip, #0
.L5905:
  and r3, r6, r0, asr #8
  ldrb  r1, [lr, r3, lsr #3]  @ zero_extendqisi2
  and r3, r3, #7
  add r3, r3, r1, asl #6
  ldrb  r2, [r3, r5]  @ zero_extendqisi2
  ldr r8, [sp, #12]
  cmp r2, #0
  ldreq r1, [sp, #8]
  orr r3, r8, r2
  add ip, ip, #1
  strne r3, [r4, #0]
  streq r1, [r4, #0]
  cmp sl, ip
  add r0, r0, r9
  add r4, r4, #4
  bne .L5905
  b .L5918
.L5864:
  cmp sl, #0
  beq .L5918
  mov r1, r0, asr #8
  mov r2, r5, asr #8
  cmp r7, r1
  cmphi r7, r2
  movls r3, #0
  movhi r3, #1
  movls ip, r3
  bls .L5871
  b .L5932
.L5891:
  cmp r7, r2
  cmphi r7, r3
  bhi .L5892
.L5871:
  add ip, ip, #1
  ldr lr, [sp, #8]
  add r0, r0, r9
  add r5, r5, fp
  cmp sl, ip
  str lr, [r4, #0]
  mov r2, r0, asr #8
  mov r3, r5, asr #8
  add r4, r4, #4
  bne .L5891
  b .L5918
.L5892:
  mov r1, r2
  mov r2, r3
.L5893:
  cmp r7, r2
  cmphi r7, r1
  mvnhi r8, #0
  bhi .L5897
  b .L5919
.L5896:
  cmp r7, r2
  cmphi r7, r1
  bls .L5919
.L5897:
  ldr r6, [sp, #16]
  mov r3, r2, lsr #3
  mov r3, r3, asl r6
  and r6, r2, #7
  and r2, r1, #7
  add r1, r3, r1, lsr #3
  cmp r1, r8
  ldrne r8, [sp, #20]
  add ip, ip, #1
  ldrneb  r3, [r8, r1]  @ zero_extendqisi2
  ldrne r8, [sp, #24]
  add r0, r0, r9
  addne lr, r8, r3, asl #6
  add r3, lr, r6, asl #3
  ldrb  r2, [r3, r2]  @ zero_extendqisi2
  ldr r6, [sp, #12]
  cmp r2, #0
  ldreq r8, [sp, #8]
  orr r3, r6, r2
  streq r8, [r4, #0]
  strne r3, [r4, #0]
  add r5, r5, fp
  cmp sl, ip
  mov r8, r1
  add r4, r4, #4
  mov r1, r0, asr #8
  mov r2, r5, asr #8
  bhi .L5896
  b .L5918
.L5931:
  mov ip, #0
.L5882:
  cmp r2, r7
  bcc .L5924
  b .L5874
.L5885:
  cmp r7, r2
  bls .L5874
.L5924:
  ldrb  r3, [lr, r2, lsr #3]  @ zero_extendqisi2
  and r2, r2, #7
  add r2, r2, r3, asl #6
  ldrb  r1, [r2, r5]  @ zero_extendqisi2
  ldr r3, [sp, #12]
  cmp r1, #0
  ldreq r6, [sp, #8]
  orr r2, r3, r1
  add ip, ip, #1
  strne r2, [r4, #0]
  streq r6, [r4, #0]
  add r0, r0, r9
  cmp sl, ip
  add r4, r4, #4
  mov r2, r0, asr #8
  bhi .L5885
  b .L5874
.L5932:
  mov ip, #0
  b .L5893
.L5934:
  .align  2
.L5933:
  .word io_registers
  .word affine_reference_y
  .word affine_reference_x
  .word vram
  .size render_scanline_affine_base_alpha, .-render_scanline_affine_base_alpha
  .align  2
  .global render_scanline_affine_transparent_alpha
  .type render_scanline_affine_transparent_alpha, %function
render_scanline_affine_transparent_alpha:
  @ args = 0, pretend = 0, frame = 36
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L5993
  add lr, r0, #7
  ldrh  ip, [r5, #80]
  sub sp, sp, #36
  mov lr, ip, asr lr
  mov ip, ip, asr r0
  and lr, lr, #2
  and ip, ip, #1
  orr ip, ip, lr
  mov ip, ip, asl #9
  tst ip, #512
  mov r4, r0
  str ip, [sp, #12]
  mov r8, r1
  mov sl, r2
  str r3, [sp, #8]
  beq .L5988
  add r3, r5, r0, asl #1
  ldrh  r1, [r3, #8]
  ldr r3, .L5993+4
  mov r2, r0, asl #4
  sub r0, r0, #2
  ldr r6, [r3, r0, asl #2]
  ldr r3, .L5993+8
  sub r2, r2, #32
  add r2, r2, r5
  mov lr, r1, lsr #14
  ldr r5, [r3, r0, asl #2]
  ldr r4, .L5993+12
  mov ip, r1, lsr #12
  mov r0, r1, asl #3
  mov r1, r1, asl #12
  and r1, r1, #49152
  ldrsh fp, [r2, #36]
  add r1, r1, r4
  ldrsh r9, [r2, #32]
  and ip, ip, #2
  and r0, r0, #63488
  str r1, [sp, #20]
  ldr r1, [sp, #8]
  add r0, r0, r4
  add r2, lr, #7
  mov r3, #1
  cmp fp, #0
  orrne ip, ip, #1
  str r0, [sp, #16]
  mov r7, r3, asl r2
  mla r0, r9, r8, r5
  rsb sl, r8, sl
  add lr, lr, #4
  add r4, r1, r8, asl #2
  mla r5, fp, r8, r6
  cmp ip, #3
  ldrls pc, [pc, ip, asl #2]
  b .L5985
  .p2align 2
.L5943:
  .word .L5939
  .word .L5940
  .word .L5941
  .word .L5942
.L5941:
  sub r6, r7, #1
  and r1, r6, r5, asr #8
  cmp r7, r1
  bls .L5985
  ldr r5, [sp, #16]
  ldr ip, [sp, #20]
  mov r2, r1, lsr #3
  and r3, r1, #7
  cmp sl, #0
  add lr, r5, r2, asl lr
  add r1, ip, r3, asl #3
  beq .L5985
  mov ip, #0
.L5974:
  and r3, r6, r0, asr #8
  ldrb  r2, [lr, r3, lsr #3]  @ zero_extendqisi2
  and r3, r3, #7
  add r3, r3, r2, asl #6
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  add ip, ip, #1
  cmp r2, #0
  ldrne r3, [r4, #0]
  ldrne r5, [sp, #12]
  add r0, r0, r9
  orrne r3, r5, r3, asl #16
  orrne r3, r2, r3
  strne r3, [r4, #0]
  cmp sl, ip
  add r4, r4, #4
  bne .L5974
.L5985:
  add sp, sp, #36
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L5988:
  add sp, sp, #36
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_affine_transparent_color32
.L5939:
  mov r1, r5, asr #8
  cmp r7, r1
  bls .L5985
  ldr r5, [sp, #16]
  ldr r6, [sp, #20]
  mov r2, r1, lsr #3
  and r3, r1, #7
  cmp sl, #0
  add lr, r5, r2, asl lr
  add r1, r6, r3, asl #3
  beq .L5985
  mov ip, r0, asr #8
  cmp r7, ip
  movls r5, #0
  bls .L5954
  b .L5991
.L5952:
  cmp r7, r3
  add r4, r4, #4
  bhi .L5953
.L5954:
  add r5, r5, #1
  add r0, r0, r9
  cmp sl, r5
  mov r3, r0, asr #8
  bne .L5952
  b .L5985
.L5942:
  cmp sl, #0
  sub r8, r7, #1
  beq .L5985
  mvn r6, #0
  str r6, [sp, #32]
  mov r7, #0
.L5979:
  and r3, r8, r5, asr #8
  mov r2, r3, lsr #3
  mov r2, r2, asl lr
  and r1, r8, r0, asr #8
  and r6, r3, #7
  and ip, r1, #7
  add r3, r2, r1, lsr #3
  ldr r1, [sp, #32]
  str r3, [sp, #32]
  cmp r3, r1
  ldrne r2, [sp, #16]
  ldrne r1, [sp, #20]
  ldrneb  r3, [r2, r3]  @ zero_extendqisi2
  add r7, r7, #1
  addne r3, r1, r3, asl #6
  strne r3, [sp, #4]
  ldr r2, [sp, #4]
  add r0, r0, r9
  add r3, r2, r6, asl #3
  ldrb  r2, [r3, ip]  @ zero_extendqisi2
  ldr r3, [sp, #12]
  cmp r2, #0
  orr r1, r3, r2
  ldrne r3, [r4, #0]
  add r5, r5, fp
  orrne r3, r1, r3, asl #16
  strne r3, [r4, #0]
  cmp sl, r7
  add r4, r4, #4
  bne .L5979
  b .L5985
.L5940:
  cmp sl, #0
  beq .L5985
  mov ip, r0, asr #8
  mov r1, r5, asr #8
  cmp r7, ip
  cmphi r7, r1
  movls r3, #0
  movhi r3, #1
  movls r8, r3
  bls .L5947
  b .L5992
.L5961:
  cmp r7, r2
  cmphi r7, r3
  bhi .L5962
.L5947:
  add r8, r8, #1
  add r0, r0, r9
  add r5, r5, fp
  cmp sl, r8
  mov r2, r0, asr #8
  mov r3, r5, asr #8
  add r4, r4, #4
  bne .L5961
  b .L5985
.L5962:
  mov ip, r2
  mov r1, r3
.L5963:
  cmp r1, r7
  movcc r3, #0
  movcs r3, #1
  cmp r7, ip
  orrls r3, r3, #1
  cmp r3, #0
  mvneq r2, #0
  streq r2, [sp, #28]
  beq .L5965
  b .L5985
.L5966:
  cmp r7, r1
  cmphi r7, ip
  bls .L5985
.L5965:
  mov r3, r1, lsr #3
  mov r3, r3, asl lr
  and r2, ip, #7
  str r2, [sp, #0]
  ldr r2, [sp, #28]
  add r3, r3, ip, lsr #3
  cmp r3, r2
  ldrne r2, [sp, #16]
  str r3, [sp, #28]
  ldrneb  r3, [r2, r3]  @ zero_extendqisi2
  ldrne r2, [sp, #20]
  and r6, r1, #7
  addne r3, r2, r3, asl #6
  strne r3, [sp, #24]
  ldr r2, [sp, #24]
  add r8, r8, #1
  add r3, r2, r6, asl #3
  ldr r6, [sp, #0]
  add r0, r0, r9
  ldrb  r2, [r3, r6]  @ zero_extendqisi2
  ldr r3, [sp, #12]
  cmp r2, #0
  orr r6, r3, r2
  ldrne r3, [r4, #0]
  add r5, r5, fp
  orrne r3, r6, r3, asl #16
  strne r3, [r4, #0]
  cmp sl, r8
  mov r1, r5, asr #8
  mov ip, r0, asr #8
  add r4, r4, #4
  bhi .L5966
  b .L5985
.L5953:
  mov ip, r3
.L5955:
  cmp ip, r7
  bcc .L5987
  b .L5985
.L5957:
  cmp r7, ip
  bls .L5985
.L5987:
  ldrb  r2, [lr, ip, lsr #3]  @ zero_extendqisi2
  and r3, ip, #7
  add r3, r3, r2, asl #6
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  add r5, r5, #1
  cmp r2, #0
  ldrne r3, [r4, #0]
  ldrne r6, [sp, #12]
  add r0, r0, r9
  orrne r3, r6, r3, asl #16
  orrne r3, r2, r3
  strne r3, [r4, #0]
  cmp sl, r5
  mov ip, r0, asr #8
  add r4, r4, #4
  bhi .L5957
  b .L5985
.L5992:
  mov r8, #0
  b .L5963
.L5991:
  mov r5, #0
  b .L5955
.L5994:
  .align  2
.L5993:
  .word io_registers
  .word affine_reference_y
  .word affine_reference_x
  .word vram
  .size render_scanline_affine_transparent_alpha, .-render_scanline_affine_transparent_alpha
  .align  2
  .global render_scanline_bitmap_mode3_normal
  .type render_scanline_bitmap_mode3_normal, %function
render_scanline_bitmap_mode3_normal:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr ip, .L6038
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r3, .L6038+4
  ldrh  r6, [ip, #36]
  ldrh  r9, [ip, #32]
  ldr ip, .L6038+8
  ldr r4, [r3, #0]
  ldr lr, [ip, #0]
  mov r3, r9, asl #16
  mov ip, r6, asl #16
  mov sl, r3, asr #16
  mov r7, ip, asr #16
  cmp r6, #0
  mla lr, r7, r0, lr
  add r5, r2, r0, asl #1
  rsb r8, r0, r1
  ldr fp, .L6038+12
  mla r0, sl, r0, r4
  beq .L5996
  cmp r8, #0
  ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  mov r6, r0, asr #8
  mov r4, lr, asr #8
  cmp r6, #239
  cmpls r4, #159
  movhi r1, #0
  movls r1, #1
  mov r2, r6
  mov r3, r4
  movhi ip, r1
  bhi .L6002
  b .L6036
.L6023:
  cmp r3, #239
  cmpls r2, #159
  bls .L6024
.L6002:
  add ip, ip, #1
  add r0, r0, sl
  add lr, lr, r7
  cmp r8, ip
  mov r3, r0, asr #8
  mov r2, lr, asr #8
  add r5, r5, #2
  bne .L6023
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L5996:
  mov r3, lr, asr #8
  cmp r3, #159
  ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  rsb r3, r3, r3, asl #4
  cmp r9, #256
  add r4, fp, r3, asl #5
  mov lr, r0, asr #8
  beq .L6004
  cmp r8, #0
  ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  cmp lr, #239
  movhi ip, r6
  bhi .L6009
  b .L6037
.L6019:
  cmp r2, #239
  bls .L6020
.L6009:
  add ip, ip, #1
  add r0, r0, sl
  cmp r8, ip
  mov r2, r0, asr #8
  add r5, r5, #2
  bne .L6019
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6024:
  mov r4, r2
  mov r6, r3
  mov r2, r3
  mov r3, r4
.L6025:
  cmp r3, #159
  cmpls r2, #239
  bls .L6032
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6027:
  cmp r4, #159
  cmpls r6, #239
  ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6032:
  rsb r3, r4, r4, asl #4
  add r3, r6, r3, asl #4
  mov r3, r3, asl #1
  ldrh  r2, [r3, fp]
  add ip, ip, #1
  mov r3, r2, lsr #10
  and r1, r2, #31
  orr r3, r3, r1, asl #11
  and r2, r2, #992
  add r0, r0, sl
  add lr, lr, r7
  orr r3, r3, r2, asl #1
  cmp r8, ip
  mov r4, lr, asr #8
  mov r6, r0, asr #8
  strh  r3, [r5], #2  @ movhi
  bhi .L6027
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6020:
  mov lr, r2
  b .L6031
.L6021:
  cmp lr, #239
  ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6031:
  mov r2, lr, asl #1
  ldrh  r3, [r2, r4]
  add ip, ip, #1
  mov r2, r3, lsr #10
  and r1, r3, #31
  orr r2, r2, r1, asl #11
  and r3, r3, #992
  add r0, r0, sl
  orr r2, r2, r3, asl #1
  cmp r8, ip
  mov lr, r0, asr #8
  strh  r2, [r5], #2  @ movhi
  bhi .L6021
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6004:
  cmp lr, #0
  sublt r5, r5, lr, asl #1
  addlt r8, r8, lr
  movlt lr, r6
  movlt r3, lr
  blt .L6012
  addne r4, r4, lr, asl #1
  mov r3, lr
.L6012:
  add r3, r8, r3
  cmp r3, #239
  rsbhi r8, lr, #240
  cmp r8, #0
  ldmlefd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  mov r0, #0
.L6018:
  ldrh  r3, [r4], #2
  add r0, r0, #1
  mov r2, r3, lsr #10
  and r1, r3, #31
  orr r2, r2, r1, asl #11
  and r3, r3, #992
  orr r2, r2, r3, asl #1
  cmp r8, r0
  strh  r2, [r5], #2  @ movhi
  bne .L6018
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6036:
  mov ip, #0
  b .L6025
.L6037:
  mov ip, r6
  b .L6031
.L6039:
  .align  2
.L6038:
  .word io_registers
  .word affine_reference_x
  .word affine_reference_y
  .word vram
  .size render_scanline_bitmap_mode3_normal, .-render_scanline_bitmap_mode3_normal
  .align  2
  .global render_scanline_bitmap_mode4_normal
  .type render_scanline_bitmap_mode4_normal, %function
render_scanline_bitmap_mode4_normal:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr r3, .L6084
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldrh  ip, [r3, #0]
  ldr r4, .L6084+4
  ldrh  sl, [r3, #36]
  tst ip, #16
  ldrh  r9, [r3, #32]
  ldr ip, .L6084+8
  ldr r3, .L6084+12
  ldr r5, [ip, #0]
  ldr r6, [r3, #0]
  mov lr, r9, asl #16
  mov ip, sl, asl #16
  add r3, r4, #40960
  moveq fp, r4
  movne fp, r3
  mov r8, lr, asr #16
  mov r7, ip, asr #16
  cmp sl, #0
  mla r4, r7, r0, r5
  add ip, r2, r0, asl #1
  rsb lr, r0, r1
  mla r5, r8, r0, r6
  beq .L6044
  cmp lr, #0
  ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  mov r1, r5, asr #8
  mov r0, r4, asr #8
  cmp r1, #239
  cmpls r0, #159
  mov r2, r1
  mov r3, r0
  movhi r6, #0
  movls r6, #1
  bhi .L6050
  b .L6082
.L6071:
  cmp r3, #239
  cmpls r2, #159
  bls .L6072
.L6050:
  add r6, r6, #1
  add r5, r5, r8
  add r4, r4, r7
  cmp lr, r6
  mov r3, r5, asr #8
  mov r2, r4, asr #8
  add ip, ip, #2
  bne .L6071
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6044:
  mov r3, r4, asr #8
  cmp r3, #159
  ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  rsb r3, r3, r3, asl #4
  cmp r9, #256
  add r1, fp, r3, asl #4
  mov r0, r5, asr #8
  beq .L6052
  cmp lr, #0
  ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  cmp r0, #239
  movhi r2, sl
  bhi .L6057
  b .L6083
.L6067:
  cmp r3, #239
  bls .L6068
.L6057:
  add r2, r2, #1
  add r5, r5, r8
  cmp lr, r2
  mov r3, r5, asr #8
  add ip, ip, #2
  bne .L6067
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6072:
  mov r0, r2
  mov r1, r3
  mov r2, r3
  mov r3, r0
.L6073:
  cmp r3, #159
  cmpls r2, #239
  ldrls sl, .L6084+16
  bls .L6074
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6075:
  cmp r0, #159
  cmpls r1, #239
  ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6074:
  rsb r3, r0, r0, asl #4
  add r3, fp, r3, asl #4
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  add r6, r6, #1
  mov r2, r2, asl #1
  ldrh  r2, [r2, sl]
  add r5, r5, r8
  add r4, r4, r7
  cmp lr, r6
  mov r0, r4, asr #8
  mov r1, r5, asr #8
  strh  r2, [ip], #2  @ movhi
  bhi .L6075
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6068:
  ldr r4, .L6084+16
  mov r0, r3
  b .L6079
.L6069:
  cmp r0, #239
  ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6079:
  ldrb  r3, [r1, r0]  @ zero_extendqisi2
  add r2, r2, #1
  mov r3, r3, asl #1
  ldrh  r3, [r3, r4]
  add r5, r5, r8
  cmp lr, r2
  mov r0, r5, asr #8
  strh  r3, [ip], #2  @ movhi
  bhi .L6069
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6052:
  cmp r0, #0
  sublt ip, ip, r0, asl #1
  addlt lr, lr, r0
  movlt r0, sl
  movlt r3, r0
  blt .L6060
  addne r1, r1, r0
  mov r3, r0
.L6060:
  add r3, lr, r3
  cmp r3, #239
  rsbhi lr, r0, #240
  cmp lr, #0
  ldmlefd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  ldr r0, .L6084+16
  mov r2, #0
.L6066:
  ldrb  r3, [r1], #1  @ zero_extendqisi2
  add r2, r2, #1
  mov r3, r3, asl #1
  ldrh  r3, [r3, r0]
  cmp lr, r2
  strh  r3, [ip], #2  @ movhi
  bne .L6066
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6082:
  mov r6, #0
  b .L6073
.L6083:
  ldr r4, .L6084+16
  mov r2, sl
  b .L6079
.L6085:
  .align  2
.L6084:
  .word io_registers
  .word vram
  .word affine_reference_y
  .word affine_reference_x
  .word palette_ram_converted
  .size render_scanline_bitmap_mode4_normal, .-render_scanline_bitmap_mode4_normal
  .align  2
  .global render_scanline_bitmap_mode5_normal
  .type render_scanline_bitmap_mode5_normal, %function
render_scanline_bitmap_mode5_normal:
  @ args = 0, pretend = 0, frame = 4
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr r3, .L6132
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldrh  ip, [r3, #0]
  ldrh  r9, [r3, #36]
  tst ip, #16
  ldr r4, .L6132+4
  ldrh  fp, [r3, #32]
  ldr ip, .L6132+8
  ldr r3, .L6132+12
  ldr r5, [ip, #0]
  ldr r6, [r3, #0]
  mov ip, r9, asl #16
  mov lr, fp, asl #16
  add r3, r4, #40960
  movne r4, r3
  mov r7, ip, asr #16
  sub sp, sp, #4
  mov sl, lr, asr #16
  cmp r9, #0
  str r4, [sp, #0]
  add ip, r2, r0, asl #1
  mla r4, r7, r0, r5
  rsb r8, r0, r1
  mla r0, sl, r0, r6
  beq .L6090
  cmp r8, #0
  beq .L6122
  mov lr, r0, asr #8
  mov r5, r4, asr #8
  cmp lr, #159
  cmpls r5, #127
  movhi r1, #0
  movls r1, #1
  mov r2, lr
  mov r3, r5
  movhi r6, r1
  bhi .L6096
  b .L6130
.L6117:
  cmp r3, #159
  cmpls r2, #127
  bls .L6118
.L6096:
  add r6, r6, #1
  add r0, r0, sl
  add r4, r4, r7
  cmp r8, r6
  mov r3, r0, asr #8
  mov r2, r4, asr #8
  add ip, ip, #2
  bne .L6117
.L6122:
  add sp, sp, #4
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6090:
  mov r3, r4, asr #8
  cmp r3, #127
  bhi .L6122
  ldr r1, [sp, #0]
  add r3, r3, r3, asl #2
  cmp fp, #256
  add lr, r1, r3, asl #6
  mov r5, r0, asr #8
  beq .L6098
  cmp r8, #0
  beq .L6122
  cmp r5, #159
  movhi r4, r9
  bhi .L6103
  b .L6131
.L6113:
  cmp r2, #159
  bls .L6114
.L6103:
  add r4, r4, #1
  add r0, r0, sl
  cmp r8, r4
  mov r2, r0, asr #8
  add ip, ip, #2
  bne .L6113
  b .L6122
.L6118:
  mov r5, r2
  mov lr, r3
  mov r2, r3
  mov r3, r5
.L6119:
  cmp r3, #127
  cmpls r2, #159
  bls .L6126
  b .L6122
.L6121:
  cmp r5, #127
  cmpls lr, #159
  bhi .L6122
.L6126:
  add r3, r5, r5, asl #2
  add r3, lr, r3, asl #5
  ldr r1, [sp, #0]
  mov r3, r3, asl #1
  ldrh  r2, [r3, r1]
  add r6, r6, #1
  mov r3, r2, lsr #10
  and r1, r2, #31
  orr r3, r3, r1, asl #11
  and r2, r2, #992
  add r0, r0, sl
  add r4, r4, r7
  orr r3, r3, r2, asl #1
  cmp r8, r6
  mov r5, r4, asr #8
  mov lr, r0, asr #8
  strh  r3, [ip], #2  @ movhi
  bhi .L6121
  b .L6122
.L6114:
  mov r5, r2
  b .L6125
.L6115:
  cmp r5, #159
  bhi .L6122
.L6125:
  mov r2, r5, asl #1
  ldrh  r3, [r2, lr]
  add r4, r4, #1
  mov r2, r3, lsr #10
  and r1, r3, #31
  orr r2, r2, r1, asl #11
  and r3, r3, #992
  add r0, r0, sl
  orr r2, r2, r3, asl #1
  cmp r8, r4
  mov r5, r0, asr #8
  strh  r2, [ip], #2  @ movhi
  bhi .L6115
  b .L6122
.L6098:
  cmp r5, #0
  sublt ip, ip, r5, asl #1
  addlt r8, r8, r5
  movlt r5, r9
  movlt r3, r5
  blt .L6106
  addne lr, lr, r5, asl #1
  mov r3, r5
.L6106:
  add r3, r8, r3
  cmp r3, #159
  rsbhi r8, r5, #160
  cmp r8, #0
  ble .L6122
  mov r0, #0
.L6112:
  ldrh  r3, [lr], #2
  add r0, r0, #1
  mov r2, r3, lsr #10
  and r1, r3, #31
  orr r2, r2, r1, asl #11
  and r3, r3, #992
  orr r2, r2, r3, asl #1
  cmp r8, r0
  strh  r2, [ip], #2  @ movhi
  bne .L6112
  b .L6122
.L6130:
  mov r6, #0
  b .L6119
.L6131:
  mov r4, r9
  b .L6125
.L6133:
  .align  2
.L6132:
  .word io_registers
  .word vram
  .word affine_reference_y
  .word affine_reference_x
  .size render_scanline_bitmap_mode5_normal, .-render_scanline_bitmap_mode5_normal
  .align  2
  .global render_scanline_obj_normal_1D
  .type render_scanline_obj_normal_1D, %function
render_scanline_obj_normal_1D:
  @ args = 0, pretend = 0, frame = 104
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr ip, .L6976
  sub sp, sp, #104
  ldrh  ip, [ip, #6]
  add r0, r0, r0, asl #2
  add r0, ip, r0, asl #5
  str ip, [sp, #28]
  ldr ip, .L6976+4
  str r1, [sp, #8]
  ldr ip, [ip, r0, asl #2]
  str r2, [sp, #4]
  str ip, [sp, #32]
  cmp ip, #0
  ldr ip, .L6976+8
  str r3, [sp, #0]
  add r0, ip, r0, asl #7
  str r0, [sp, #36]
  beq .L6922
  add r0, r3, r1, asl #1
  rsb r1, r1, r2
  mov r2, #0
  str r0, [sp, #76]
  str r1, [sp, #100]
  str r2, [sp, #24]
  mov r4, r2
.L6137:
  ldr r5, [sp, #36]
  ldr r6, .L6976+12
  ldrb  r3, [r4, r5]  @ zero_extendqisi2
  mov r3, r3, asl #3
  ldrh  lr, [r3, r6]
  add r3, r3, r6
  ldrh  r1, [r3, #2]
  mov r4, lr, lsr #12
  and r2, r4, #12
  orr r0, r2, r1, lsr #14
  and ip, lr, #255
  mov r2, r1, asl #23
  cmp ip, #160
  ldrh  r6, [r3, #4]
  mov r5, r2, asr #23
  ldr r3, .L6976+16
  ldr r2, .L6976+20
  subgt ip, ip, #256
  tst lr, #256
  ldr r7, [r2, r0, asl #2]
  ldr sl, [r3, r0, asl #2]
  beq .L6140
  tst lr, #8192
  beq .L6142
  mov r3, r1, lsr #4
  ldr r4, .L6976+12
  and r3, r3, #992
  add r3, r3, r4
  tst lr, #512
  ldrh  lr, [r3, #30]
  add r2, r7, r7, lsr #31
  add r1, sl, sl, lsr #31
  str lr, [sp, #12]
  mov lr, r2, asr #1
  ldr r2, [sp, #8]
  mov r4, r1, asr #1
  movne r0, lr, asl #1
  strne r0, [sp, #48]
  moveq r9, r7
  streq lr, [sp, #48]
  moveq r0, r4
  movne r9, r7, asl #1
  movne r0, r4, asl #1
  cmp r5, r2
  ldrh  r8, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  fp, [r3, #22]
  bge .L6147
  rsb r2, r5, r2
  rsb r9, r2, r9
  cmp r9, #0
  ble .L6149
  ldr r3, [sp, #48]
  ldr r5, [sp, #8]
  rsb r3, r2, r3
  str r3, [sp, #48]
.L6147:
  ldr r2, [sp, #4]
  add r3, r5, r9
  cmp r3, r2
  blt .L6151
  rsb r9, r5, r2
  cmp r9, #0
  ble .L6149
.L6151:
  add r0, ip, r0
  ldr ip, [sp, #12]
  mov r2, r1, asl #16
  mov lr, lr, asl #8
  mov r1, ip, asl #16
  mov r3, r8, asl #16
  mov ip, r1, asr #16
  str lr, [sp, #84]
  ldr r1, [sp, #28]
  ldr lr, [sp, #0]
  mov r3, r3, asr #16
  mov r2, r2, asr #16
  cmp fp, #0
  add r8, lr, r5, asl #1
  str r3, [sp, #40]
  str r2, [sp, #44]
  mov r4, r4, asl #8
  rsb lr, r0, r1
  bne .L6153
  mla r3, lr, ip, r4
  mov r0, r3, asr #8
  cmp r0, sl
  bcs .L6149
  cmp r7, #0
  add r3, r7, #7
  movge r3, r7
  mov r3, r3, asr #3
  mov r2, r6, asl #22
  mov r3, r3, asl #1
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L6976+24
  add r0, r0, ip, asl #2
  cmp r9, #0
  add r4, r3, r0, asl #3
  ble .L6149
  ldr r3, [sp, #44]
  ldr r2, [sp, #48]
  ldr r5, [sp, #40]
  mul r3, lr, r3
  mul r2, r5, r2
  ldr r6, [sp, #84]
  rsb r3, r2, r3
  add r0, r6, r3
  mov lr, r0, asr #8
  cmp lr, r7
  movcs ip, fp
  bcs .L6159
  b .L6972
.L6160:
  cmp lr, r7
  bcc .L6936
.L6159:
  ldr lr, [sp, #40]
  add ip, ip, #1
  add r0, r0, lr
  cmp r9, ip
  mov lr, r0, asr #8
  add r8, r8, #2
  bne .L6160
.L6149:
  ldr lr, [sp, #24]
  ldr r0, [sp, #32]
  add lr, lr, #1
  cmp lr, r0
  str lr, [sp, #24]
  beq .L6922
.L6954:
  ldr r4, [sp, #24]
  b .L6137
.L6140:
  ldr lr, [sp, #28]
  tst r1, #8192
  rsb ip, ip, lr
  rsbne r3, ip, sl
  subne ip, r3, #1
  mov r2, r1, asl #19
  and r3, r4, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L6149
  .p2align 2
.L6221:
  .word .L6217
  .word .L6218
  .word .L6219
  .word .L6220
.L6217:
  cmp r7, #0
  add r3, r7, #7
  mov r2, r6, asl #22
  movge r3, r7
  mov r8, r3, asr #3
  mov r2, r2, lsr #22
  mov r3, ip, lsr #3
  mla r0, r8, r3, r2
  and r1, ip, #7
  add r1, r1, r0, asl #3
  ldr r0, [sp, #8]
  ldr r3, .L6976+24
  cmp r5, r0
  mov r2, r6, lsr #8
  add r0, r3, r1, asl #2
  and r1, r2, #240
  blt .L6949
  ldr r2, [sp, #4]
  add r3, r5, r7
  cmp r2, r3
  bhi .L6303
  rsb r8, r5, r2
  cmp r8, #0
  ble .L6149
  ldr r3, [sp, #0]
  movs  r7, r8, lsr #3
  add r2, r3, r5, asl #1
  beq .L6306
  ldr r6, .L6976+36
  mov r4, r2
  mov r5, r0
  mov ip, #0
.L6308:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L6309
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #0]  @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #2]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #4]  @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #6]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #8]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #10] @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #12] @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #14] @ movhi
.L6309:
  add ip, ip, #1
  cmp ip, r7
  add r5, r5, #32
  add r4, r4, #16
  bne .L6308
  add r0, r0, r7, asl #5
  add r2, r2, r7, asl #4
.L6306:
  ands  r4, r8, #7
  beq .L6149
  ldr r0, [r0, #0]
  ldr r5, .L6976+36
  mov lr, #0
.L6328:
  ands  r3, r0, #15
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov ip, lr, asl #1
  add lr, lr, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp lr, r4
  mov r0, r0, lsr #4
  bne .L6328
  b .L6149
.L6218:
  cmp r7, #0
  add r3, r7, #7
  mov r2, r6, asl #22
  movge r3, r7
  mov r1, ip, lsr #3
  mov r8, r3, asr #3
  mov r2, r2, lsr #22
  mla r0, r8, r1, r2
  subs  r3, r7, #8
  submi r3, r7, #1
  and r2, ip, #7
  ldr ip, [sp, #8]
  add r0, r0, r3, asr #3
  ldr r3, .L6976+24
  add r2, r2, r0, asl #3
  mov r1, r6, lsr #8
  cmp r5, ip
  add r0, r3, r2, asl #2
  and r1, r1, #240
  blt .L6950
  ldr r2, [sp, #4]
  add r3, r5, r7
  cmp r2, r3
  bhi .L6433
  rsb r8, r5, r2
  cmp r8, #0
  ble .L6149
  ldr r3, [sp, #0]
  movs  r7, r8, lsr #3
  add r2, r3, r5, asl #1
  beq .L6436
  ldr r6, .L6976+36
  mov r4, r2
  mov r5, r0
  mov ip, #0
.L6438:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L6439
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #14] @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #12] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #10] @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #8]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #6]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #4]  @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #0]  @ movhi
.L6439:
  add ip, ip, #1
  cmp ip, r7
  sub r5, r5, #32
  add r4, r4, #16
  bne .L6438
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add r2, r2, r7, asl #4
.L6436:
  ands  r4, r8, #7
  beq .L6149
  ldr r0, [r0, #0]
  ldr r5, .L6976+36
  mov lr, #0
.L6458:
  movs  r3, r0, lsr #28
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov ip, lr, asl #1
  add lr, lr, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp lr, r4
  mov r0, r0, asl #4
  bne .L6458
  b .L6149
.L6219:
  cmp r7, #0
  add r3, r7, #7
  mov r1, r6, asl #22
  movge r3, r7
  mov r2, ip, lsr #3
  mov r6, r3, asr #3
  mov r1, r1, lsr #22
  mov r2, r2, asl #1
  mla r0, r2, r6, r1
  and r3, ip, #7
  add r3, r3, r0, asl #2
  ldr ip, [sp, #8]
  mov r0, r3, asl #3
  ldr r3, .L6976+24
  cmp r5, ip
  add r1, r0, r3
  blt .L6951
  ldr ip, [sp, #4]
  add r3, r5, r7
  cmp ip, r3
  bhi .L6638
  rsb r8, r5, ip
  cmp r8, #0
  ble .L6149
  ldr lr, [sp, #0]
  movs  r7, r8, lsr #3
  add r2, lr, r5, asl #1
  beq .L6641
  ldr r3, .L6976+32
  ldr r6, .L6976+36
  add r0, r0, r3
  mov r4, r2
  mov r5, r1
  mov ip, #0
.L6643:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L6644
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #0]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #2]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #4]  @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #6]  @ movhi
.L6644:
  ldr lr, [r0, #-60]
  cmp lr, #0
  beq .L6653
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #8]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #10] @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #12] @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #14] @ movhi
.L6653:
  add ip, ip, #1
  cmp r7, ip
  add r5, r5, #64
  add r4, r4, #16
  add r0, r0, #64
  bne .L6643
  add r1, r1, r7, asl #6
  add r2, r2, r7, asl #4
.L6641:
  ands  lr, r8, #7
  beq .L6149
  cmp lr, #3
  ldrls r0, [r1, #0]
  bls .L6676
  ldr r0, [r1, #0]
  cmp r0, #0
  beq .L6666
  ands  r3, r0, #255
  ldrne r4, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #0]  @ movhi
  mov r3, r0, lsr #8
  ands  r3, r3, #255
  ldrne r5, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r2, #2]  @ movhi
  mov r3, r0, lsr #16
  ands  r3, r3, #255
  ldrne r6, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r2, #4]  @ movhi
  movs  r3, r0, lsr #24
  ldrne r7, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r2, #6]  @ movhi
.L6666:
  subs  lr, lr, #4
  ldr r0, [r1, #4]
  addne r2, r2, #8
  beq .L6149
.L6676:
  mov r1, #0
.L6677:
  ands  r3, r0, #255
  ldrne r4, .L6976+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov ip, r1, asl #1
  add r1, r1, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp lr, r1
  mov r0, r0, lsr #8
  bhi .L6677
  b .L6149
.L6220:
  cmp r7, #0
  add r2, r7, #7
  movge r2, r7
  subs  r3, r7, #8
  submi r3, r7, #1
  mov r1, ip, lsr #3
  mov r8, r2, asr #3
  mov r3, r3, asr #3
  mla r0, r8, r1, r3
  mov r2, r6, asl #22
  mov r2, r2, lsr #22
  add r2, r2, r0, asl #1
  and r3, ip, #7
  add r3, r3, r2, asl #2
  ldr ip, [sp, #8]
  mov r0, r3, asl #3
  ldr r3, .L6976+24
  cmp r5, ip
  add r1, r0, r3
  blt .L6952
  ldr ip, [sp, #4]
  add r3, r5, r7
  cmp r3, ip
  bcc .L6858
  rsb r8, r5, ip
  cmp r8, #0
  ble .L6149
  ldr lr, [sp, #0]
  movs  r7, r8, lsr #3
  add sl, lr, r5, asl #1
  beq .L6861
  ldr r3, .L6976+28
  ldr r6, .L6976+36
  add r0, r0, r3
  mov r4, sl
  mov r5, r1
  mov ip, #0
.L6863:
  ldr lr, [r0, #68]
  cmp lr, #0
  beq .L6864
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #6]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #4]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #0]  @ movhi
.L6864:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L6873
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #14] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #12] @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #10] @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #8]  @ movhi
.L6873:
  add ip, ip, #1
  cmp ip, r7
  sub r5, r5, #64
  add r4, r4, #16
  sub r0, r0, #64
  bne .L6863
  rsb r3, r7, r7, asl #26
  add r1, r1, r3, asl #6
  add sl, sl, r7, asl #4
.L6861:
  ands  ip, r8, #7
  beq .L6149
  cmp ip, #3
  ldrls r2, [r1, #4]
  bls .L6896
  ldr r2, [r1, #4]
  cmp r2, #0
  beq .L6886
  ands  r3, r2, #255
  ldrne r0, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [sl, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r4, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [sl, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r5, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [sl, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r6, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [sl, #0]  @ movhi
.L6886:
  subs  ip, ip, #4
  ldr r2, [r1, #0]
  addne sl, sl, #8
  beq .L6149
.L6896:
  mov r1, #0
.L6897:
  movs  r3, r2, lsr #24
  ldrne r7, .L6976+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  mov r0, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r0, sl]  @ movhi
  cmp ip, r1
  mov r2, r2, asl #8
  bhi .L6897
  b .L6149
.L6142:
  mov r3, r1, lsr #4
  ldr r4, .L6976+12
  and r3, r3, #992
  add r3, r3, r4
  tst lr, #512
  ldrh  lr, [r3, #30]
  add r2, r7, r7, lsr #31
  add r1, sl, sl, lsr #31
  str lr, [sp, #20]
  mov lr, r2, asr #1
  ldr r2, [sp, #8]
  mov r4, r1, asr #1
  ldrh  r8, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq fp, r7
  moveq r9, lr
  moveq r0, r4
  movne fp, r7, asl #1
  movne r9, lr, asl #1
  movne r0, r4, asl #1
  cmp r5, r2
  str r3, [sp, #16]
  bge .L6180
  rsb r2, r5, r2
  rsb fp, r2, fp
  cmp fp, #0
  ble .L6149
  ldr r5, [sp, #8]
  rsb r9, r2, r9
.L6180:
  ldr r2, [sp, #4]
  add r3, r5, fp
  cmp r3, r2
  blt .L6183
  rsb fp, r5, r2
  cmp fp, #0
  ble .L6149
.L6183:
  add ip, ip, r0
  ldr r0, [sp, #20]
  mov r2, r1, asl #16
  mov r1, r0, asl #16
  ldr r0, [sp, #16]
  mov r2, r2, asr #16
  mov r1, r1, asr #16
  mov r3, r8, asl #16
  cmp r0, #0
  str r2, [sp, #60]
  mov r0, r6, lsr #8
  str r1, [sp, #68]
  ldr r2, [sp, #28]
  ldr r1, [sp, #0]
  mov lr, lr, asl #8
  mov r3, r3, asr #16
  and r0, r0, #240
  str lr, [sp, #80]
  str r3, [sp, #56]
  mov r4, r4, asl #8
  add r8, r1, r5, asl #1
  rsb lr, ip, r2
  str r0, [sp, #96]
  bne .L6185
  ldr r3, [sp, #68]
  mla r3, lr, r3, r4
  mov r0, r3, asr #8
  cmp r0, sl
  bcs .L6149
  cmp r7, #0
  add r3, r7, #7
  mov r2, r6, asl #22
  movge r3, r7
  mov r1, r0, lsr #3
  mov r3, r3, asr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L6976+24
  add r0, r0, ip, asl #3
  cmp fp, #0
  add r1, r3, r0, asl #2
  ble .L6149
  ldr r3, [sp, #60]
  ldr r2, [sp, #56]
  mul r3, lr, r3
  mul r2, r9, r2
  ldr r4, [sp, #80]
  rsb r3, r2, r3
  add r0, r4, r3
  mov lr, r0, asr #8
  cmp lr, r7
  ldrcs r4, [sp, #16]
  bcs .L6191
  b .L6973
.L6192:
  cmp lr, r7
  bcc .L6938
.L6191:
  ldr r5, [sp, #56]
  add r4, r4, #1
  add r0, r0, r5
  cmp fp, r4
  mov lr, r0, asr #8
  add r8, r8, #2
  bne .L6192
  ldr lr, [sp, #24]
  ldr r0, [sp, #32]
  add lr, lr, #1
  cmp lr, r0
  str lr, [sp, #24]
  bne .L6954
.L6922:
  add sp, sp, #104
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6153:
  cmp r7, #0
  add r1, r7, #7
  mov r2, r6, asl #22
  movge r1, r7
  ldr r3, .L6976+24
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #6
  cmp r9, #0
  str r2, [sp, #92]
  str r1, [sp, #52]
  ble .L6149
  mov r3, fp, asl #16
  mov fp, r3, asr #16
  ldr r5, [sp, #40]
  ldr r3, [sp, #44]
  ldr r1, [sp, #48]
  ldr r0, [sp, #48]
  mul r2, lr, ip
  mul r3, lr, r3
  mul r0, r5, r0
  mul r1, fp, r1
  ldr r6, [sp, #84]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r5, r6, r3
  add r4, r4, r2
  mov ip, r5, asr #8
  mov lr, r4, asr #8
  cmp ip, r7
  cmpcc lr, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L6169
  b .L6974
.L6170:
  cmp ip, r7
  cmpcc lr, sl
  bcc .L6171
.L6169:
  ldr ip, [sp, #40]
  add r6, r6, #1
  add r5, r5, ip
  add r4, r4, fp
  cmp r9, r6
  mov ip, r5, asr #8
  mov lr, r4, asr #8
  add r8, r8, #2
  bne .L6170
  b .L6149
.L6185:
  cmp r7, #0
  add r1, r7, #7
  mov r2, r6, asl #22
  movge r1, r7
  ldr r3, .L6976+24
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #5
  cmp fp, #0
  str r2, [sp, #88]
  str r1, [sp, #72]
  ble .L6149
  ldr r5, [sp, #16]
  ldr r2, [sp, #68]
  mov r3, r5, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #64]
  ldr r1, [sp, #64]
  ldr r3, [sp, #60]
  ldr r0, [sp, #56]
  mul r2, lr, r2
  mul r3, lr, r3
  mul r1, r9, r1
  mul r0, r9, r0
  ldr r6, [sp, #80]
  rsb r2, r1, r2
  rsb r3, r0, r3
  add r5, r6, r3
  add r4, r4, r2
  mov lr, r5, asr #8
  mov r2, r4, asr #8
  cmp lr, r7
  cmpcc r2, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L6204
  b .L6975
.L6205:
  cmp lr, r7
  cmpcc r2, sl
  bcc .L6207
.L6204:
  ldr lr, [sp, #64]
  ldr ip, [sp, #56]
  add r6, r6, #1
  add r4, r4, lr
  add r5, r5, ip
  cmp fp, r6
  mov lr, r5, asr #8
  mov r2, r4, asr #8
  add r8, r8, #2
  bne .L6205
  b .L6149
.L6957:
  ldr r1, [sp, #88]
  and r0, r2, #7
  add r0, r1, r0, asl #2
  mov r3, r2, asr #3
  and r1, r2, #7
  ldr r2, [sp, #72]
  mov ip, lr, asr #1
  mul r2, r3, r2
  and r9, ip, #3
  ldr ip, [sp, #88]
  mov r3, lr, asr #1
  add r1, ip, r1, asl #2
  and ip, r3, #3
  mov r3, lr, asr #3
  add r2, r2, r3, asl #5
  add r3, r0, r2
  tst lr, #1
  add r0, r1, r2
  ldreqb  r3, [r0, ip]  @ zero_extendqisi2
  ldrneb  r3, [r3, r9]  @ zero_extendqisi2
  andeq r0, r3, #15
  movne r0, r3, lsr #4
  ldr r2, [sp, #96]
  cmp r0, #0
  orr r3, r0, r2
  ldrne ip, .L6976+36
  mov r3, r3, asl #1
  ldr lr, [sp, #56]
  ldrneh  r3, [r3, ip]
  ldr r1, [sp, #64]
  add r6, r6, #1
  strneh  r3, [r8, #0]  @ movhi
  add r5, r5, lr
  add r4, r4, r1
  cmp fp, r6
  mov lr, r5, asr #8
  mov r2, r4, asr #8
  add r8, r8, #2
  ble .L6149
.L6207:
  cmp r2, sl
  cmpcc lr, r7
  bcc .L6957
  b .L6149
.L6194:
  cmp lr, r7
  bcs .L6149
.L6938:
  mov r3, lr, asr #1
  and r6, r3, #3
  mov r3, lr, asr #3
  mov r3, r3, asl #5
  mov r2, lr, asr #1
  tst lr, #1
  add ip, r3, r1
  and r5, r2, #3
  add r2, r3, r1
  ldreqb  r3, [r2, r5]  @ zero_extendqisi2
  ldrneb  r3, [ip, r6]  @ zero_extendqisi2
  andeq r2, r3, #15
  movne r2, r3, lsr #4
  ldr ip, [sp, #96]
  cmp r2, #0
  orr r3, r2, ip
  ldrne r2, .L6976+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  ldr r6, [sp, #56]
  add r4, r4, #1
  strneh  r3, [r8, #0]  @ movhi
  add r0, r0, r6
  cmp fp, r4
  mov lr, r0, asr #8
  add r8, r8, #2
  bgt .L6194
  b .L6149
.L6162:
  cmp lr, r7
  bcs .L6149
.L6936:
  ldr r1, [sp, #40]
  mov r3, lr, asr #3
  add r3, r4, r3, asl #6
  add r0, r0, r1
  and r1, lr, #7
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  add ip, ip, #1
  cmp r2, #0
  ldrne r3, .L6976+36
  mov r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov lr, r0, asr #8
  strneh  r2, [r8, #0]  @ movhi
  cmp r9, ip
  add r8, r8, #2
  bgt .L6162
  b .L6149
.L6977:
  .align  2
.L6976:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word oam_ram
  .word obj_height_table
  .word obj_width_table
  .word vram+65536
  .word vram+65472
  .word vram+65600
  .word palette_ram_converted+512
.L6952:
  rsb r0, r5, ip
  rsb r4, r0, r7
  cmp r4, #0
  ble .L6149
  ldr lr, [sp, #4]
  add r3, r5, r7
  cmp lr, r3
  bhi .L6705
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub r7, r1, r3, asl #6
  bne .L6707
  ldr r6, [sp, #100]
  ldr r5, [sp, #76]
.L6709:
  movs  r4, r6, lsr #3
  beq .L6767
  ldr lr, .L6976+36
  mov r1, r5
  mov r0, r7
  mov ip, #0
.L6769:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L6770
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #2]  @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #0]  @ movhi
.L6770:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L6779
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #12] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #10] @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #8]  @ movhi
.L6779:
  add ip, ip, #1
  cmp ip, r4
  sub r0, r0, #64
  add r1, r1, #16
  bne .L6769
  rsb r3, r4, r4, asl #26
  add r7, r7, r3, asl #6
  add r5, r5, r4, asl #4
.L6767:
  ands  ip, r6, #7
  beq .L6149
  cmp ip, #3
  ldrls r2, [r7, #4]
  bls .L6802
  ldr r2, [r7, #4]
  cmp r2, #0
  beq .L6792
  ands  r3, r2, #255
  ldrne lr, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r0, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r1]
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r2, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r5, #0]  @ movhi
.L6792:
  subs  ip, ip, #4
  ldr r2, [r7, #0]
  addne r5, r5, #8
  beq .L6149
.L6802:
  mov r1, #0
.L6803:
  movs  r3, r2, lsr #24
  ldrne r4, .L6976+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r0, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r0, r5]  @ movhi
  cmp ip, r1
  mov r2, r2, asl #8
  bhi .L6803
  b .L6149
.L6951:
  rsb r0, r5, ip
  rsb r4, r0, r7
  cmp r4, #0
  ble .L6149
  ldr lr, [sp, #4]
  add r3, r5, r7
  cmp lr, r3
  bhi .L6485
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  add r7, r1, r3, asl #6
  bne .L6487
  ldr r6, [sp, #100]
  ldr r5, [sp, #76]
.L6489:
  movs  r4, r6, lsr #3
  beq .L6547
  ldr lr, .L6976+36
  mov r1, r5
  mov r0, r7
  mov ip, #0
.L6549:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L6550
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #6]  @ movhi
.L6550:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L6559
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #10] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #12] @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #14] @ movhi
.L6559:
  add ip, ip, #1
  cmp r4, ip
  add r0, r0, #64
  add r1, r1, #16
  bne .L6549
  add r7, r7, r4, asl #6
  add r5, r5, r4, asl #4
.L6547:
  ands  ip, r6, #7
  beq .L6149
  cmp ip, #3
  ldrls r1, [r7, #0]
  bls .L6582
  ldr r2, [r7, #0]
  cmp r2, #0
  beq .L6572
  ands  r3, r2, #255
  ldrne lr, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r5, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r0, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [r5, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r1]
  strneh  r3, [r5, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r2, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r5, #6]  @ movhi
.L6572:
  subs  ip, ip, #4
  ldr r1, [r7, #4]
  addne r5, r5, #8
  beq .L6149
.L6582:
  mov r2, #0
.L6583:
  ands  r3, r1, #255
  ldrne r4, .L6976+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r0, r2, asl #1
  add r2, r2, #1
  strneh  r3, [r0, r5]  @ movhi
  cmp ip, r2
  mov r1, r1, lsr #8
  bhi .L6583
  b .L6149
.L6950:
  rsb lr, r5, ip
  rsb ip, lr, r7
  cmp ip, #0
  ble .L6149
  ldr r2, [sp, #4]
  add r3, r5, r7
  cmp r2, r3
  bhi .L6355
  mov r3, lr, lsr #3
  ands  r4, lr, #7
  sub r0, r0, r3, asl #5
  bne .L6357
  ldr r2, [sp, #100]
  ldr sl, [sp, #76]
.L6359:
  movs  r8, r2, lsr #3
  beq .L6376
  ldr r7, .L6976+36
  mov r4, sl
  mov r5, r0
  mov r6, #0
.L6378:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L6379
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #14] @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #12] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #10] @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #8]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #6]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #4]  @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #0]  @ movhi
.L6379:
  add r6, r6, #1
  cmp r6, r8
  sub r5, r5, #32
  add r4, r4, #16
  bne .L6378
  rsb r3, r8, r8, asl #27
  add r0, r0, r3, asl #5
  add sl, sl, r8, asl #4
.L6376:
  ands  lr, r2, #7
  beq .L6149
  ldr r0, [r0, #0]
  ldr r4, .L6976+36
  mov ip, #0
.L6398:
  movs  r3, r0, lsr #28
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r2, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r2, sl]  @ movhi
  cmp ip, lr
  mov r0, r0, asl #4
  bne .L6398
  b .L6149
.L6949:
  ldr r2, [sp, #8]
  rsb lr, r5, r2
  rsb r4, lr, r7
  cmp r4, #0
  ble .L6149
  add r3, r5, r7
  ldr r5, [sp, #4]
  cmp r5, r3
  bhi .L6225
  mov r3, lr, lsr #3
  mov r2, r3, asl #5
  ands  r3, lr, #7
  add r6, r0, r2
  bne .L6227
  ldr r8, [sp, #100]
  ldr r7, [sp, #76]
.L6229:
  movs  r5, r8, lsr #3
  beq .L6246
  ldr r4, .L6976+36
  mov ip, r7
  mov r0, r6
  mov lr, #0
.L6248:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L6249
  ands  r3, r2, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #14] @ movhi
.L6249:
  add lr, lr, #1
  cmp r5, lr
  add r0, r0, #32
  add ip, ip, #16
  bne .L6248
  add r6, r6, r5, asl #5
  add r7, r7, r5, asl #4
.L6246:
  ands  lr, r8, #7
  beq .L6149
  ldr r2, [r6, #0]
  ldr r4, .L6976+36
  mov r0, #0
.L6268:
  ands  r3, r2, #15
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov ip, r0, asl #1
  add r0, r0, #1
  strneh  r3, [ip, r7]  @ movhi
  cmp r0, lr
  mov r2, r2, lsr #4
  bne .L6268
  b .L6149
.L6974:
  mov r6, #0
.L6171:
  cmp lr, sl
  movcc r3, #0
  movcs r3, #1
  cmp r7, ip
  orrls r3, r3, #1
  cmp r3, #0
  beq .L6937
  b .L6149
.L6172:
  cmp lr, sl
  cmpcc ip, r7
  bcs .L6149
.L6937:
  ldr r0, [sp, #40]
  and r3, lr, #7
  mov r2, ip, asr #3
  ldr r1, [sp, #92]
  mov r3, r3, asl #3
  add r5, r5, r0
  add r3, r3, r2, asl #6
  ldr r0, [sp, #52]
  mov r2, lr, asr #3
  add r3, r3, r1
  mla r0, r2, r0, r3
  and r1, ip, #7
  ldrb  r3, [r0, r1]  @ zero_extendqisi2
  add r6, r6, #1
  cmp r3, #0
  ldrne r2, .L6976+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  add r4, r4, fp
  strneh  r3, [r8, #0]  @ movhi
  cmp r9, r6
  mov lr, r4, asr #8
  mov ip, r5, asr #8
  add r8, r8, #2
  bgt .L6172
  b .L6149
.L6433:
  cmp r8, #0
  beq .L6149
  ldr r6, [sp, #0]
  ldr r4, .L6976+36
  add r2, r6, r5, asl #1
  mov ip, #0
  b .L6463
.L6958:
  sub r0, r0, #32
  add r2, r2, #16
.L6463:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L6464
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #14] @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #12] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #10] @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #8]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #6]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #4]  @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #2]  @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #0]  @ movhi
.L6464:
  add ip, ip, #1
  cmp r8, ip
  bne .L6958
  b .L6149
.L6858:
  cmp r8, #0
  beq .L6149
  ldr ip, [sp, #0]
  ldr r3, .L6976+28
  ldr r4, .L6976+36
  add r2, ip, r5, asl #1
  add r0, r0, r3
  mov ip, #0
  b .L6902
.L6959:
  sub r1, r1, #64
  add r2, r2, #16
.L6902:
  ldr lr, [r0, #68]
  cmp lr, #0
  beq .L6903
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #6]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #4]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #2]  @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #0]  @ movhi
.L6903:
  ldr lr, [r1, #0]
  cmp lr, #0
  beq .L6912
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #14] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #12] @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #10] @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #8]  @ movhi
.L6912:
  add ip, ip, #1
  cmp r8, ip
  sub r0, r0, #64
  bne .L6959
  b .L6149
.L6303:
  cmp r8, #0
  beq .L6149
  ldr r6, [sp, #0]
  ldr r4, .L6976+36
  add r2, r6, r5, asl #1
  mov ip, #0
  b .L6333
.L6960:
  add r0, r0, #32
  add r2, r2, #16
.L6333:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L6334
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #0]  @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #2]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #4]  @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #6]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #8]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #10] @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #12] @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #14] @ movhi
.L6334:
  add ip, ip, #1
  cmp r8, ip
  bne .L6960
  b .L6149
.L6638:
  cmp r6, #0
  beq .L6149
  ldr r3, .L6976+32
  ldr r7, [sp, #0]
  ldr r4, .L6976+36
  add r0, r0, r3
  add r2, r7, r5, asl #1
  mov ip, #0
  b .L6682
.L6961:
  add r1, r1, #64
  add r2, r2, #16
.L6682:
  ldr lr, [r1, #0]
  cmp lr, #0
  beq .L6683
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #0]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #2]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #4]  @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #6]  @ movhi
.L6683:
  ldr lr, [r0, #-60]
  cmp lr, #0
  beq .L6692
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #8]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #10] @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #12] @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #14] @ movhi
.L6692:
  add ip, ip, #1
  cmp r6, ip
  add r0, r0, #64
  bne .L6961
  b .L6149
.L6485:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  add r0, r1, r3, asl #6
  ldreq r1, [sp, #76]
  beq .L6589
  cmp r2, #3
  rsb lr, r2, #8
  bhi .L6962
  subs  r5, lr, #4
  ldr r1, [r0, #0]
  ldreq r1, [sp, #76]
  beq .L6602
  mov r3, r2, asl #3
  mov r2, r1, lsr r3
  ldr r6, .L6976+36
  mov ip, #0
.L6603:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldrne r7, [sp, #76]
  mov r1, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r1, r7]  @ movhi
  cmp ip, r5
  mov r2, r2, lsr #8
  bne .L6603
  ldr ip, [sp, #76]
  add r3, ip, lr, asl #1
  sub r1, r3, #8
.L6602:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L6608
  ands  r3, r2, #255
  ldrne lr, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r5, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r6, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r7, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r1, #6]  @ movhi
.L6608:
  add r1, r1, #8
.L6594:
  add r0, r0, #64
.L6589:
  movs  r4, r4, lsr #3
  beq .L6149
  ldr ip, .L6976+36
  mov lr, #0
  b .L6618
.L6963:
  add r0, r0, #64
  add r1, r1, #16
.L6618:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L6619
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #6]  @ movhi
.L6619:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L6628
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #10] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #12] @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #14] @ movhi
.L6628:
  add lr, lr, #1
  cmp r4, lr
  bne .L6963
  b .L6149
.L6355:
  ands  r2, lr, #7
  mov r3, lr, lsr #3
  sub r0, r0, r3, asl #5
  ldreq r4, [sp, #76]
  beq .L6404
  rsbs  r6, r2, #8
  ldr lr, [r0, #0]
  ldreq r4, [sp, #76]
  beq .L6407
  mov r3, r2, asl #2
  mov lr, lr, asl r3
  ldr r2, .L6976+36
  mov r5, #0
.L6408:
  movs  r3, lr, lsr #28
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  ldrne r7, [sp, #76]
  mov r4, r5, asl #1
  add r5, r5, #1
  strneh  r3, [r4, r7]  @ movhi
  cmp r6, r5
  mov lr, lr, asl #4
  bne .L6408
  ldr lr, [sp, #76]
  add r4, lr, r6, asl #1
.L6407:
  sub r0, r0, #32
.L6404:
  movs  r5, ip, lsr #3
  beq .L6149
  ldr r2, .L6976+36
  mov ip, #0
  b .L6414
.L6964:
  sub r0, r0, #32
  add r4, r4, #16
.L6414:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L6415
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #14] @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #12] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #10] @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #8]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #6]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #4]  @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #0]  @ movhi
.L6415:
  add ip, ip, #1
  cmp ip, r5
  bne .L6964
  b .L6149
.L6705:
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub r2, r1, r3, asl #6
  ldreq r0, [sp, #76]
  beq .L6809
  cmp ip, #3
  rsb lr, ip, #8
  bhi .L6965
  subs  r5, lr, #4
  ldr r1, [r2, #4]
  ldreq r0, [sp, #76]
  beq .L6822
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  ldr r6, .L6976+36
  mov ip, #0
.L6823:
  movs  r3, r1, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldrne r7, [sp, #76]
  mov r0, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r0, r7]  @ movhi
  cmp r5, ip
  mov r1, r1, asl #8
  bne .L6823
  ldr ip, [sp, #76]
  add r3, ip, lr, asl #1
  sub r0, r3, #8
.L6822:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L6828
  ands  r3, r1, #255
  ldrne lr, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r5, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r6, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r1, lsr #24
  ldrne r7, .L6976+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #0]  @ movhi
.L6828:
  add r0, r0, #8
.L6814:
  sub r2, r2, #64
.L6809:
  movs  r4, r4, lsr #3
  beq .L6149
  ldr ip, .L6976+36
  mov lr, #0
  b .L6838
.L6966:
  sub r2, r2, #64
  add r0, r0, #16
.L6838:
  ldr r1, [r2, #4]
  cmp r1, #0
  beq .L6839
  ands  r3, r1, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r1, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #0]  @ movhi
.L6839:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L6848
  ands  r3, r1, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #14] @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #12] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #10] @ movhi
  movs  r3, r1, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #8]  @ movhi
.L6848:
  add lr, lr, #1
  cmp lr, r4
  bne .L6966
  b .L6149
.L6225:
  mov r3, lr, lsr #3
  mov r2, r3, asl #5
  ands  r3, lr, #7
  ldreq ip, [sp, #76]
  add lr, r0, r2
  beq .L6274
  rsbs  r5, r3, #8
  ldr r0, [r0, r2]
  ldreq ip, [sp, #76]
  beq .L6277
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  ldr r6, .L6976+36
  mov ip, #0
.L6278:
  ands  r3, r0, #15
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldrne r7, [sp, #76]
  mov r2, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r2, r7]  @ movhi
  cmp ip, r5
  mov r0, r0, lsr #4
  bne .L6278
  ldr r0, [sp, #76]
  add ip, r0, r5, asl #1
.L6277:
  add lr, lr, #32
.L6274:
  movs  r5, r4, lsr #3
  beq .L6149
  ldr r0, .L6978
  mov r4, #0
  b .L6284
.L6967:
  add lr, lr, #32
  add ip, ip, #16
.L6284:
  ldr r2, [lr, #0]
  cmp r2, #0
  beq .L6285
  ands  r3, r2, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #14] @ movhi
.L6285:
  add r4, r4, #1
  cmp r4, r5
  bne .L6967
  b .L6149
.L6487:
  ldr r0, [sp, #100]
  rsb lr, ip, #8
  cmp r0, lr
  blt .L6968
  cmp ip, #3
  bls .L6520
  cmp lr, #0
  ldr r2, [r7, #4]
  ldreq r5, [sp, #76]
  beq .L6524
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  ldr ip, .L6978
  mov r0, #0
.L6525:
  ands  r3, r1, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r4, [sp, #76]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp lr, r0
  mov r1, r1, lsr #8
  bne .L6525
  ldr r6, [sp, #76]
  add r5, r6, lr, asl #1
.L6524:
  ldr ip, [sp, #100]
  add r7, r7, #64
  rsb r6, lr, ip
  b .L6489
.L6357:
  ldr r3, [sp, #100]
  rsb r6, r4, #8
  cmp r3, r6
  blt .L6969
  cmp r6, #0
  ldr r2, [r0, #0]
  ldreq sl, [sp, #76]
  beq .L6370
  mov r3, r4, asl #2
  mov lr, r2, asl r3
  ldr r2, .L6978
  mov r5, #0
.L6371:
  movs  r3, lr, lsr #28
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  ldrne r7, [sp, #76]
  mov r4, r5, asl #1
  add r5, r5, #1
  strneh  r3, [r4, r7]  @ movhi
  cmp r6, r5
  mov lr, lr, asl #4
  bne .L6371
  ldr ip, [sp, #76]
  add sl, ip, r6, asl #1
.L6370:
  ldr lr, [sp, #100]
  sub r0, r0, #32
  rsb r2, r6, lr
  b .L6359
.L6227:
  ldr r7, [sp, #100]
  rsb lr, r3, #8
  cmp r7, lr
  blt .L6970
  cmp lr, #0
  ldr r2, [r6, #0]
  ldreq r7, [sp, #76]
  beq .L6240
  mov r3, r3, asl #2
  mov r2, r2, lsr r3
  ldr r4, .L6978
  mov ip, #0
.L6241:
  ands  r3, r2, #15
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  ldrne r7, [sp, #76]
  mov r0, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r0, r7]  @ movhi
  cmp lr, ip
  mov r2, r2, lsr #4
  bne .L6241
  ldr ip, [sp, #76]
  add r7, ip, lr, asl #1
.L6240:
  ldr r0, [sp, #100]
  add r6, r6, #32
  rsb r8, lr, r0
  b .L6229
.L6707:
  ldr r0, [sp, #100]
  rsb lr, ip, #8
  cmp r0, lr
  blt .L6971
  cmp ip, #3
  bls .L6740
  cmp lr, #0
  ldr r2, [r7, #0]
  ldreq r5, [sp, #76]
  beq .L6744
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  ldr ip, .L6978
  mov r0, #0
.L6745:
  movs  r3, r2, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r4, [sp, #76]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r4]  @ movhi
  cmp lr, r0
  mov r2, r2, asl #8
  bne .L6745
  ldr r6, [sp, #76]
  add r5, r6, lr, asl #1
.L6744:
  ldr ip, [sp, #100]
  sub r7, r7, #64
  rsb r6, lr, ip
  b .L6709
.L6971:
  cmp r0, #0
  ble .L6149
  cmp ip, #3
  bls .L6713
  mov r3, ip, asl #3
  ldr r2, [r7, #0]
  sub r3, r3, #32
  mov r2, r2, asl r3
  ldr ip, .L6978
  mov r0, #0
.L6716:
  movs  r3, r2, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r4, [sp, #76]
  ldr r5, [sp, #100]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r4]  @ movhi
  cmp r5, r0
  mov r2, r2, asl #8
  bne .L6716
  b .L6149
.L6970:
  cmp r7, #0
  ble .L6149
  ldr r2, [r0, r2]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  ldr lr, .L6978
  mov ip, #0
.L6234:
  ands  r3, r0, #15
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  ldrne r4, [sp, #76]
  ldr r5, [sp, #100]
  mov r2, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r5, ip
  mov r0, r0, lsr #4
  bne .L6234
  b .L6149
.L6969:
  cmp r3, #0
  ble .L6149
  ldr r2, [r0, #0]
  mov r3, r4, asl #2
  mov r0, r2, asl r3
  ldr lr, .L6978
  mov ip, #0
.L6364:
  movs  r3, r0, lsr #28
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  ldrne r4, [sp, #76]
  ldr r5, [sp, #100]
  mov r2, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r5, ip
  mov r0, r0, asl #4
  bne .L6364
  b .L6149
.L6965:
  cmp lr, #0
  ldr r1, [r2, #0]
  ldreq r0, [sp, #76]
  beq .L6814
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  ldr r5, .L6978
  mov ip, #0
.L6815:
  movs  r3, r1, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldrne r6, [sp, #76]
  mov r0, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r0, r6]  @ movhi
  cmp ip, lr
  mov r1, r1, asl #8
  bne .L6815
  ldr r7, [sp, #76]
  sub r2, r2, #64
  add r0, r7, lr, asl #1
  b .L6809
.L6962:
  cmp lr, #0
  ldr r1, [r0, #4]
  ldreq r1, [sp, #76]
  beq .L6594
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r2, r1, lsr r3
  ldr r5, .L6978
  mov ip, #0
.L6595:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldrne r6, [sp, #76]
  mov r1, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r1, r6]  @ movhi
  cmp ip, lr
  mov r2, r2, lsr #8
  bne .L6595
  ldr r7, [sp, #76]
  add r0, r0, #64
  add r1, r7, lr, asl #1
  b .L6589
.L6968:
  cmp r0, #0
  ble .L6149
  cmp ip, #3
  bls .L6493
  mov r3, ip, asl #3
  ldr r2, [r7, #4]
  sub r3, r3, #32
  mov r1, r2, lsr r3
  ldr ip, .L6978
  mov r0, #0
.L6496:
  ands  r3, r1, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r4, [sp, #76]
  ldr r5, [sp, #100]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r5, r0
  mov r1, r1, lsr #8
  bne .L6496
  b .L6149
.L6975:
  mov r6, #0
  b .L6207
.L6740:
  subs  r4, lr, #4
  ldr r2, [r7, #4]
  ldreq r1, [sp, #76]
  beq .L6752
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  ldr ip, .L6978
  mov r0, #0
.L6753:
  movs  r3, r2, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r5, [sp, #76]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r5]  @ movhi
  cmp r4, r0
  mov r2, r2, asl #8
  bne .L6753
  ldr r6, [sp, #76]
  add r3, r6, lr, asl #1
  sub r1, r3, #8
.L6752:
  ldr r2, [r7, #0]
  cmp r2, #0
  beq .L6758
  ands  r3, r2, #255
  ldrne ip, .L6978
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r0, .L6978
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r4, .L6978
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r1, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r5, .L6978
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r1, #0]  @ movhi
.L6758:
  add r5, r1, #8
  b .L6744
.L6520:
  subs  r4, lr, #4
  ldr r2, [r7, #0]
  ldreq r1, [sp, #76]
  beq .L6532
  mov r3, ip, asl #3
  mov r1, r2, lsr r3
  ldr ip, .L6978
  mov r0, #0
.L6533:
  ands  r3, r1, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r5, [sp, #76]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r5]  @ movhi
  cmp r0, r4
  mov r1, r1, lsr #8
  bne .L6533
  ldr r6, [sp, #76]
  add r3, r6, lr, asl #1
  sub r1, r3, #8
.L6532:
  ldr r2, [r7, #4]
  cmp r2, #0
  beq .L6538
  ands  r3, r2, #255
  ldrne ip, .L6978
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r0, .L6978
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r4, .L6978
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r5, .L6978
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r1, #6]  @ movhi
.L6538:
  add r5, r1, #8
  b .L6524
.L6973:
  ldr r4, [sp, #16]
  b .L6938
.L6972:
  mov ip, fp
  b .L6936
.L6713:
  ldr r6, [sp, #100]
  mov r3, ip, asl #3
  ldr r1, [r7, #4]
  add r2, r6, ip
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L6720
  cmp r6, #0
  ldrne ip, .L6978
  movne r0, #0
  beq .L6149
.L6736:
  movs  r3, r1, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r7, [sp, #76]
  ldr lr, [sp, #100]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r7]  @ movhi
  cmp lr, r0
  mov r1, r1, asl #8
  bne .L6736
  b .L6149
.L6493:
  ldr r6, [sp, #100]
  ldr r3, [r7, #0]
  add r2, r6, ip
  cmp r2, #4
  mov r1, ip, asl #3
  mov r2, r3, lsr r1
  bhi .L6500
  cmp r6, #0
  ldrne ip, .L6978
  movne r0, #0
  beq .L6149
.L6516:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r7, [sp, #76]
  ldr lr, [sp, #100]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r7]  @ movhi
  cmp lr, r0
  mov r2, r2, lsr #8
  bne .L6516
  b .L6149
.L6720:
  rsbs  ip, ip, #4
  ldreq lr, [sp, #76]
  beq .L6725
  ldr lr, .L6978
  mov r0, #0
.L6726:
  movs  r3, r1, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  ldrne r4, [sp, #76]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r0, ip
  mov r1, r1, asl #8
  bne .L6726
  ldr r5, [sp, #76]
  add lr, r5, ip, asl #1
.L6725:
  ldr r6, [sp, #100]
  ldr r2, [r7, #0]
  subs  ip, r6, ip
  beq .L6149
  ldr r4, .L6978
  mov r0, #0
.L6732:
  movs  r3, r2, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r0, ip
  mov r2, r2, asl #8
  bne .L6732
  b .L6149
.L6500:
  rsbs  ip, ip, #4
  ldreq lr, [sp, #76]
  beq .L6505
  ldr lr, .L6978
  mov r0, #0
.L6506:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  ldrne r4, [sp, #76]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r4]  @ movhi
  cmp r0, ip
  mov r2, r2, lsr #8
  bne .L6506
  ldr r5, [sp, #76]
  add lr, r5, ip, asl #1
.L6505:
  ldr r6, [sp, #100]
  ldr r2, [r7, #4]
  subs  ip, r6, ip
  beq .L6149
  ldr r4, .L6978
  mov r0, #0
.L6512:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r0, ip
  mov r2, r2, lsr #8
  bne .L6512
  b .L6149
.L6979:
  .align  2
.L6978:
  .word palette_ram_converted+512
  .size render_scanline_obj_normal_1D, .-render_scanline_obj_normal_1D
  .align  2
  .global render_scanline_obj_normal_2D
  .type render_scanline_obj_normal_2D, %function
render_scanline_obj_normal_2D:
  @ args = 0, pretend = 0, frame = 92
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr ip, .L7822
  sub sp, sp, #92
  ldrh  ip, [ip, #6]
  add r0, r0, r0, asl #2
  add r0, ip, r0, asl #5
  str ip, [sp, #32]
  ldr ip, .L7822+4
  str r1, [sp, #12]
  ldr ip, [ip, r0, asl #2]
  str r2, [sp, #8]
  str ip, [sp, #36]
  cmp ip, #0
  ldr ip, .L7822+8
  str r3, [sp, #4]
  add r0, ip, r0, asl #7
  str r0, [sp, #40]
  beq .L7768
  add r0, r3, r1, asl #1
  rsb r1, r1, r2
  mov r2, #0
  str r0, [sp, #64]
  str r1, [sp, #88]
  str r2, [sp, #28]
  mov r4, r2
.L6983:
  ldr r5, [sp, #40]
  ldr r6, .L7822+12
  ldrb  r3, [r4, r5]  @ zero_extendqisi2
  ldr r7, .L7822+16
  mov r3, r3, asl #3
  ldrh  lr, [r3, r6]
  add r3, r3, r6
  ldrh  r1, [r3, #2]
  mov r4, lr, lsr #12
  and r2, r4, #12
  orr r0, r2, r1, lsr #14
  and ip, lr, #255
  mov r2, r1, asl #23
  cmp ip, #160
  mov r5, r2, asr #23
  ldr r2, .L7822+20
  subgt ip, ip, #256
  tst lr, #256
  ldrh  r6, [r3, #4]
  ldr r8, [r7, r0, asl #2]
  ldr sl, [r2, r0, asl #2]
  beq .L6986
  tst lr, #8192
  beq .L6988
  mov r3, r1, lsr #4
  ldr r4, .L7822+12
  add r2, r8, r8, lsr #31
  and r3, r3, #992
  tst lr, #512
  add r3, r3, r4
  mov lr, r2, asr #1
  add r1, sl, sl, lsr #31
  ldr r2, [sp, #12]
  mov r4, r1, asr #1
  movne r0, lr, asl #1
  ldrh  r7, [r3, #30]
  strne r0, [sp, #48]
  moveq r9, r8
  streq lr, [sp, #48]
  moveq r0, r4
  movne r9, r8, asl #1
  movne r0, r4, asl #1
  cmp r5, r2
  str r7, [sp, #16]
  ldrh  r1, [r3, #14]
  ldrh  r7, [r3, #6]
  ldrh  fp, [r3, #22]
  bge .L6993
  rsb r2, r5, r2
  rsb r9, r2, r9
  cmp r9, #0
  ble .L6995
  ldr r3, [sp, #48]
  ldr r5, [sp, #12]
  rsb r3, r2, r3
  str r3, [sp, #48]
.L6993:
  ldr r2, [sp, #8]
  add r3, r5, r9
  cmp r3, r2
  blt .L6997
  rsb r9, r5, r2
  cmp r9, #0
  ble .L6995
.L6997:
  mov r3, r7, asl #16
  mov r2, r1, asl #16
  ldr r7, [sp, #16]
  mov r3, r3, asr #16
  add r0, ip, r0
  str r3, [sp, #44]
  mov ip, r2, asr #16
  ldr r3, [sp, #32]
  ldr r2, [sp, #4]
  mov r1, r7, asl #16
  mov lr, lr, asl #8
  cmp fp, #0
  str lr, [sp, #72]
  mov r1, r1, asr #16
  mov lr, r4, asl #8
  add r7, r2, r5, asl #1
  rsb r0, r0, r3
  bne .L6999
  mla r3, r0, r1, lr
  mov r1, r3, asr #8
  cmp r1, sl
  bcs .L6995
  mov r3, r6, asl #22
  mov r2, r1, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #2
  ldr r3, .L7822+24
  cmp r9, #0
  add r4, r3, r1, asl #3
  ble .L6995
  ldr r2, [sp, #48]
  ldr r5, [sp, #44]
  mul r3, r0, ip
  mul r2, r5, r2
  ldr r6, [sp, #72]
  rsb r3, r2, r3
  add r0, r6, r3
  mov lr, r0, asr #8
  cmp lr, r8
  movcs ip, fp
  bcs .L7005
  b .L7818
.L7006:
  cmp lr, r8
  bcc .L7782
.L7005:
  ldr lr, [sp, #44]
  add ip, ip, #1
  add r0, r0, lr
  cmp r9, ip
  mov lr, r0, asr #8
  add r7, r7, #2
  bne .L7006
.L6995:
  ldr r0, [sp, #28]
  ldr r1, [sp, #36]
  add r0, r0, #1
  cmp r0, r1
  str r0, [sp, #28]
  beq .L7768
.L7800:
  ldr r4, [sp, #28]
  b .L6983
.L6986:
  ldr r2, [sp, #32]
  tst r1, #8192
  rsb r0, ip, r2
  rsbne r3, r0, sl
  subne r0, r3, #1
  mov r2, r1, asl #19
  and r3, r4, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L6995
  .p2align 2
.L7067:
  .word .L7063
  .word .L7064
  .word .L7065
  .word .L7066
.L7063:
  mov r3, r6, asl #22
  mov r2, r0, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r0, #7
  add r1, r1, r3, asl #3
  ldr r3, [sp, #12]
  mov r2, r6, lsr #8
  cmp r5, r3
  ldr r3, .L7822+24
  add r0, r3, r1, asl #2
  and r1, r2, #240
  blt .L7795
  ldr r2, [sp, #8]
  add r3, r5, r8
  cmp r2, r3
  bhi .L7149
  rsb r8, r5, r2
  cmp r8, #0
  ble .L6995
  ldr r3, [sp, #4]
  movs  r7, r8, lsr #3
  add r2, r3, r5, asl #1
  beq .L7152
  ldr r6, .L7822+36
  mov r4, r2
  mov r5, r0
  mov ip, #0
.L7154:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L7155
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #0]  @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #2]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #4]  @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #6]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #8]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #10] @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #12] @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #14] @ movhi
.L7155:
  add ip, ip, #1
  cmp ip, r7
  add r5, r5, #32
  add r4, r4, #16
  bne .L7154
  add r0, r0, r7, asl #5
  add r2, r2, r7, asl #4
.L7152:
  ands  r4, r8, #7
  beq .L6995
  ldr r0, [r0, #0]
  ldr r5, .L7822+36
  mov lr, #0
.L7174:
  ands  r3, r0, #15
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov ip, lr, asl #1
  add lr, lr, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp lr, r4
  mov r0, r0, lsr #4
  bne .L7174
  b .L6995
.L7064:
  mov r3, r6, asl #22
  mov r1, r0, lsr #3
  subs  r2, r8, #8
  mov r3, r3, lsr #22
  submi r2, r8, #1
  add r3, r3, r1, asl #5
  add r3, r3, r2, asr #3
  and r1, r0, #7
  ldr ip, [sp, #12]
  add r1, r1, r3, asl #3
  ldr r3, .L7822+24
  mov r2, r6, lsr #8
  cmp r5, ip
  add r0, r3, r1, asl #2
  and r1, r2, #240
  blt .L7796
  ldr r2, [sp, #8]
  add r3, r5, r8
  cmp r2, r3
  bhi .L7279
  rsb r8, r5, r2
  cmp r8, #0
  ble .L6995
  ldr r3, [sp, #4]
  movs  r7, r8, lsr #3
  add r2, r3, r5, asl #1
  beq .L7282
  ldr r6, .L7822+36
  mov r4, r2
  mov r5, r0
  mov ip, #0
.L7284:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L7285
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #14] @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #12] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #10] @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #8]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #6]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #4]  @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #0]  @ movhi
.L7285:
  add ip, ip, #1
  cmp ip, r7
  sub r5, r5, #32
  add r4, r4, #16
  bne .L7284
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add r2, r2, r7, asl #4
.L7282:
  ands  r4, r8, #7
  beq .L6995
  ldr r0, [r0, #0]
  ldr r5, .L7822+36
  mov lr, #0
.L7304:
  movs  r3, r0, lsr #28
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  mov ip, lr, asl #1
  add lr, lr, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp lr, r4
  mov r0, r0, asl #4
  bne .L7304
  b .L6995
.L7065:
  mov r2, r6, asl #22
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  and r3, r0, #7
  add r2, r2, r1, asl #5
  add r3, r3, r2, asl #2
  ldr ip, [sp, #12]
  mov r0, r3, asl #3
  ldr r3, .L7822+24
  cmp r5, ip
  add ip, r0, r3
  blt .L7797
  ldr lr, [sp, #8]
  add r3, r5, r8
  cmp lr, r3
  bhi .L7484
  rsb r8, r5, lr
  cmp r8, #0
  ble .L6995
  ldr r1, [sp, #4]
  movs  r7, r8, lsr #3
  add r2, r1, r5, asl #1
  beq .L7487
  ldr r3, .L7822+32
  ldr r6, .L7822+36
  add r0, r0, r3
  mov r4, r2
  mov r5, ip
  mov r1, #0
.L7489:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L7490
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #0]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #2]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #4]  @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #6]  @ movhi
.L7490:
  ldr lr, [r0, #-60]
  cmp lr, #0
  beq .L7499
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #8]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #10] @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #12] @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #14] @ movhi
.L7499:
  add r1, r1, #1
  cmp r7, r1
  add r5, r5, #64
  add r4, r4, #16
  add r0, r0, #64
  bne .L7489
  add ip, ip, r7, asl #6
  add r2, r2, r7, asl #4
.L7487:
  ands  lr, r8, #7
  beq .L6995
  cmp lr, #3
  ldrls r0, [ip, #0]
  bls .L7522
  ldr r1, [ip, #0]
  cmp r1, #0
  beq .L7512
  ands  r3, r1, #255
  ldrne r4, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #0]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r5, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r2, #2]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r6, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r2, #4]  @ movhi
  movs  r3, r1, lsr #24
  ldrne r7, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r2, #6]  @ movhi
.L7512:
  subs  lr, lr, #4
  ldr r0, [ip, #4]
  addne r2, r2, #8
  beq .L6995
.L7522:
  mov r1, #0
.L7523:
  ands  r3, r0, #255
  ldrne r4, .L7822+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov ip, r1, asl #1
  add r1, r1, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp lr, r1
  mov r0, r0, lsr #8
  bhi .L7523
  b .L6995
.L7066:
  subs  r2, r8, #8
  submi r2, r8, #1
  mov r3, r0, lsr #3
  mov r2, r2, asr #3
  mov r1, r6, asl #22
  add r2, r2, r3, asl #4
  mov r1, r1, lsr #22
  and r3, r0, #7
  add r1, r1, r2, asl #1
  add r3, r3, r1, asl #2
  ldr ip, [sp, #12]
  mov r0, r3, asl #3
  ldr r3, .L7822+24
  cmp r5, ip
  add ip, r0, r3
  blt .L7798
  ldr lr, [sp, #8]
  add r3, r5, r8
  cmp r3, lr
  bcc .L7704
  rsb r8, r5, lr
  cmp r8, #0
  ble .L6995
  ldr r1, [sp, #4]
  movs  r7, r8, lsr #3
  add sl, r1, r5, asl #1
  beq .L7707
  ldr r3, .L7822+28
  ldr r6, .L7822+36
  add r0, r0, r3
  mov r4, sl
  mov r5, ip
  mov r1, #0
.L7709:
  ldr lr, [r0, #68]
  cmp lr, #0
  beq .L7710
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #6]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #4]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #0]  @ movhi
.L7710:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L7719
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #14] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #12] @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #10] @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r4, #8]  @ movhi
.L7719:
  add r1, r1, #1
  cmp r1, r7
  sub r5, r5, #64
  add r4, r4, #16
  sub r0, r0, #64
  bne .L7709
  rsb r3, r7, r7, asl #26
  add ip, ip, r3, asl #6
  add sl, sl, r7, asl #4
.L7707:
  ands  lr, r8, #7
  beq .L6995
  cmp lr, #3
  ldrls r2, [ip, #4]
  bls .L7742
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L7732
  ands  r3, r2, #255
  ldrne r4, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [sl, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r5, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [sl, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r6, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [sl, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r7, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [sl, #0]  @ movhi
.L7732:
  subs  lr, lr, #4
  ldr r2, [ip, #0]
  addne sl, sl, #8
  beq .L6995
.L7742:
  mov r1, #0
.L7743:
  movs  r3, r2, lsr #24
  ldrne ip, .L7822+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  mov r0, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r0, sl]  @ movhi
  cmp lr, r1
  mov r2, r2, asl #8
  bhi .L7743
  b .L6995
.L6988:
  mov r3, r1, lsr #4
  ldr r4, .L7822+12
  and r3, r3, #992
  add r3, r3, r4
  ldrh  r7, [r3, #30]
  add r2, r8, r8, lsr #31
  tst lr, #512
  add r1, sl, sl, lsr #31
  mov lr, r2, asr #1
  ldr r2, [sp, #12]
  mov r4, r1, asr #1
  str r7, [sp, #24]
  ldrh  r1, [r3, #14]
  ldrh  r7, [r3, #6]
  ldrh  r3, [r3, #22]
  moveq fp, r8
  moveq r9, lr
  moveq r0, r4
  movne fp, r8, asl #1
  movne r9, lr, asl #1
  movne r0, r4, asl #1
  cmp r5, r2
  str r3, [sp, #20]
  bge .L7026
  rsb r2, r5, r2
  rsb fp, r2, fp
  cmp fp, #0
  ble .L6995
  ldr r5, [sp, #12]
  rsb r9, r2, r9
.L7026:
  ldr r2, [sp, #8]
  add r3, r5, fp
  cmp r3, r2
  blt .L7029
  rsb fp, r5, r2
  cmp fp, #0
  ble .L6995
.L7029:
  add ip, ip, r0
  mov r3, r7, asl #16
  mov r2, r1, asl #16
  ldr r0, [sp, #20]
  ldr r7, [sp, #24]
  mov r3, r3, asr #16
  mov r2, r2, asr #16
  cmp r0, #0
  str r3, [sp, #52]
  mov r0, r6, lsr #8
  str r2, [sp, #56]
  ldr r3, [sp, #32]
  ldr r2, [sp, #4]
  mov r1, r7, asl #16
  mov lr, lr, asl #8
  and r0, r0, #240
  str lr, [sp, #68]
  mov r1, r1, asr #16
  mov lr, r4, asl #8
  add r7, r2, r5, asl #1
  rsb ip, ip, r3
  str r0, [sp, #84]
  bne .L7031
  mla r3, ip, r1, lr
  mov r1, r3, asr #8
  cmp r1, sl
  bcs .L6995
  mov r3, r6, asl #22
  mov r2, r1, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #3
  ldr r3, .L7822+24
  cmp fp, #0
  add r1, r3, r1, asl #2
  ble .L6995
  ldr r3, [sp, #56]
  ldr r2, [sp, #52]
  mul r3, ip, r3
  mul r2, r9, r2
  ldr r4, [sp, #68]
  rsb r3, r2, r3
  add r0, r4, r3
  mov lr, r0, asr #8
  cmp lr, r8
  ldrcs r4, [sp, #20]
  bcs .L7037
  b .L7819
.L7038:
  cmp lr, r8
  bcc .L7784
.L7037:
  ldr r5, [sp, #52]
  add r4, r4, #1
  add r0, r0, r5
  cmp fp, r4
  mov lr, r0, asr #8
  add r7, r7, #2
  bne .L7038
  ldr r0, [sp, #28]
  ldr r1, [sp, #36]
  add r0, r0, #1
  cmp r0, r1
  str r0, [sp, #28]
  bne .L7800
.L7768:
  add sp, sp, #92
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L6999:
  mov r3, r6, asl #22
  ldr r2, .L7822+24
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  cmp r9, #0
  str r3, [sp, #80]
  ble .L6995
  mov r3, fp, asl #16
  mul r2, r0, r1
  mov fp, r3, asr #16
  ldr r4, [sp, #44]
  mul r3, r0, ip
  ldr r1, [sp, #48]
  ldr r0, [sp, #48]
  mul r1, fp, r1
  mul r0, r4, r0
  ldr r6, [sp, #72]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r5, r6, r3
  add r4, lr, r2
  mov ip, r5, asr #8
  mov lr, r4, asr #8
  cmp ip, r8
  cmpcc lr, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L7015
  b .L7820
.L7016:
  cmp ip, r8
  cmpcc lr, sl
  bcc .L7017
.L7015:
  ldr ip, [sp, #44]
  add r6, r6, #1
  add r5, r5, ip
  add r4, r4, fp
  cmp r9, r6
  mov ip, r5, asr #8
  mov lr, r4, asr #8
  add r7, r7, #2
  bne .L7016
  b .L6995
.L7031:
  mov r3, r6, asl #22
  ldr r2, .L7822+24
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  cmp fp, #0
  str r3, [sp, #76]
  ble .L6995
  ldr r4, [sp, #20]
  mul r2, ip, r1
  mov r3, r4, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #60]
  ldr r1, [sp, #60]
  ldr r3, [sp, #56]
  ldr r0, [sp, #52]
  mul r3, ip, r3
  mul r1, r9, r1
  mul r0, r9, r0
  ldr r6, [sp, #68]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r5, r6, r3
  add r4, lr, r2
  mov ip, r5, asr #8
  mov lr, r4, asr #8
  cmp ip, r8
  cmpcc lr, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L7050
  b .L7821
.L7051:
  cmp ip, r8
  cmpcc lr, sl
  bcc .L7053
.L7050:
  ldr ip, [sp, #52]
  ldr lr, [sp, #60]
  add r6, r6, #1
  add r5, r5, ip
  add r4, r4, lr
  cmp fp, r6
  mov ip, r5, asr #8
  mov lr, r4, asr #8
  add r7, r7, #2
  bne .L7051
  b .L6995
.L7803:
  mov r3, ip, asr #1
  ldr r1, [sp, #76]
  and r3, r3, #3
  str r3, [sp, #0]
  and r0, lr, #7
  ldr r3, [sp, #76]
  add r0, r1, r0, asl #2
  and r1, lr, #7
  mov r2, ip, asr #1
  add r1, r3, r1, asl #2
  mov r3, lr, asr #3
  and r9, r2, #3
  mov r3, r3, asl #10
  mov r2, ip, asr #3
  tst ip, #1
  add r3, r3, r2, asl #5
  add r2, r0, r3
  movne ip, r9
  add r0, r1, r3
  ldreqb  r3, [r0, r9]  @ zero_extendqisi2
  ldrneb  r3, [r2, ip]  @ zero_extendqisi2
  andeq r0, r3, #15
  movne r0, r3, lsr #4
  ldr r2, [sp, #84]
  cmp r0, #0
  orr r3, r0, r2
  ldrne r0, .L7822+36
  mov r3, r3, asl #1
  ldr lr, [sp, #52]
  ldrneh  r3, [r3, r0]
  ldr r1, [sp, #60]
  add r6, r6, #1
  add r5, r5, lr
  strneh  r3, [r7, #0]  @ movhi
  add r4, r4, r1
  cmp fp, r6
  mov ip, r5, asr #8
  mov lr, r4, asr #8
  add r7, r7, #2
  ble .L6995
.L7053:
  cmp lr, sl
  cmpcc ip, r8
  bcc .L7803
  b .L6995
.L7040:
  cmp lr, r8
  bcs .L6995
.L7784:
  mov r3, lr, asr #1
  and r6, r3, #3
  mov r3, lr, asr #3
  mov r3, r3, asl #5
  mov r2, lr, asr #1
  tst lr, #1
  add ip, r3, r1
  and r5, r2, #3
  add r2, r3, r1
  ldreqb  r3, [r2, r5]  @ zero_extendqisi2
  ldrneb  r3, [ip, r6]  @ zero_extendqisi2
  andeq r2, r3, #15
  movne r2, r3, lsr #4
  ldr ip, [sp, #84]
  cmp r2, #0
  orr r3, r2, ip
  ldrne r2, .L7822+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  ldr r6, [sp, #52]
  add r4, r4, #1
  strneh  r3, [r7, #0]  @ movhi
  add r0, r0, r6
  cmp fp, r4
  mov lr, r0, asr #8
  add r7, r7, #2
  bgt .L7040
  b .L6995
.L7008:
  cmp lr, r8
  bcs .L6995
.L7782:
  ldr r1, [sp, #44]
  mov r3, lr, asr #3
  add r3, r4, r3, asl #6
  add r0, r0, r1
  and r1, lr, #7
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  add ip, ip, #1
  cmp r2, #0
  ldrne r3, .L7822+36
  mov r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  mov lr, r0, asr #8
  strneh  r2, [r7, #0]  @ movhi
  cmp r9, ip
  add r7, r7, #2
  bgt .L7008
  b .L6995
.L7823:
  .align  2
.L7822:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word oam_ram
  .word obj_width_table
  .word obj_height_table
  .word vram+65536
  .word vram+65472
  .word vram+65600
  .word palette_ram_converted+512
.L7798:
  ldr lr, [sp, #12]
  rsb r1, r5, lr
  rsb r4, r1, r8
  cmp r4, #0
  ble .L6995
  ldr r0, [sp, #8]
  add r3, r5, r8
  cmp r0, r3
  bhi .L7551
  mov r3, r1, lsr #3
  ands  r0, r1, #7
  sub r7, ip, r3, asl #6
  bne .L7553
  ldr r6, [sp, #88]
  ldr r5, [sp, #64]
.L7555:
  movs  r4, r6, lsr #3
  beq .L7613
  ldr lr, .L7822+36
  mov r1, r5
  mov r0, r7
  mov ip, #0
.L7615:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L7616
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #2]  @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #0]  @ movhi
.L7616:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L7625
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #12] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #10] @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #8]  @ movhi
.L7625:
  add ip, ip, #1
  cmp ip, r4
  sub r0, r0, #64
  add r1, r1, #16
  bne .L7615
  rsb r3, r4, r4, asl #26
  add r7, r7, r3, asl #6
  add r5, r5, r4, asl #4
.L7613:
  ands  ip, r6, #7
  beq .L6995
  cmp ip, #3
  ldrls r2, [r7, #4]
  bls .L7648
  ldr r2, [r7, #4]
  cmp r2, #0
  beq .L7638
  ands  r3, r2, #255
  ldrne r0, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r1, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r1]
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r4, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r6, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r5, #0]  @ movhi
.L7638:
  subs  ip, ip, #4
  ldr r2, [r7, #0]
  addne r5, r5, #8
  beq .L6995
.L7648:
  mov r1, #0
.L7649:
  movs  r3, r2, lsr #24
  ldrne r7, .L7822+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  mov r0, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r0, r5]  @ movhi
  cmp ip, r1
  mov r2, r2, asl #8
  bhi .L7649
  b .L6995
.L7797:
  ldr lr, [sp, #12]
  rsb r1, r5, lr
  rsb r4, r1, r8
  cmp r4, #0
  ble .L6995
  ldr r0, [sp, #8]
  add r3, r5, r8
  cmp r0, r3
  bhi .L7331
  mov r3, r1, lsr #3
  ands  r0, r1, #7
  add r7, ip, r3, asl #6
  bne .L7333
  ldr r6, [sp, #88]
  ldr r5, [sp, #64]
.L7335:
  movs  r4, r6, lsr #3
  beq .L7393
  ldr lr, .L7822+36
  mov r1, r5
  mov r0, r7
  mov ip, #0
.L7395:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L7396
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #6]  @ movhi
.L7396:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L7405
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #10] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #12] @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #14] @ movhi
.L7405:
  add ip, ip, #1
  cmp r4, ip
  add r0, r0, #64
  add r1, r1, #16
  bne .L7395
  add r7, r7, r4, asl #6
  add r5, r5, r4, asl #4
.L7393:
  ands  ip, r6, #7
  beq .L6995
  cmp ip, #3
  ldrls r1, [r7, #0]
  bls .L7428
  ldr r2, [r7, #0]
  cmp r2, #0
  beq .L7418
  ands  r3, r2, #255
  ldrne r0, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [r5, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r1, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r1]
  strneh  r3, [r5, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r4, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r5, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r6, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r5, #6]  @ movhi
.L7418:
  subs  ip, ip, #4
  ldr r1, [r7, #4]
  addne r5, r5, #8
  beq .L6995
.L7428:
  mov r2, #0
.L7429:
  ands  r3, r1, #255
  ldrne r7, .L7822+36
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  mov r0, r2, asl #1
  add r2, r2, #1
  strneh  r3, [r0, r5]  @ movhi
  cmp ip, r2
  mov r1, r1, lsr #8
  bhi .L7429
  b .L6995
.L7796:
  rsb lr, r5, ip
  rsb ip, lr, r8
  cmp ip, #0
  ble .L6995
  ldr r2, [sp, #8]
  add r3, r5, r8
  cmp r2, r3
  bhi .L7201
  mov r3, lr, lsr #3
  ands  r4, lr, #7
  sub r0, r0, r3, asl #5
  bne .L7203
  ldr r2, [sp, #88]
  ldr sl, [sp, #64]
.L7205:
  movs  r8, r2, lsr #3
  beq .L7222
  ldr r7, .L7822+36
  mov r4, sl
  mov r5, r0
  mov r6, #0
.L7224:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L7225
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #14] @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #12] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #10] @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #8]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #6]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #4]  @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r4, #0]  @ movhi
.L7225:
  add r6, r6, #1
  cmp r6, r8
  sub r5, r5, #32
  add r4, r4, #16
  bne .L7224
  rsb r3, r8, r8, asl #27
  add r0, r0, r3, asl #5
  add sl, sl, r8, asl #4
.L7222:
  ands  lr, r2, #7
  beq .L6995
  ldr r0, [r0, #0]
  ldr r4, .L7822+36
  mov ip, #0
.L7244:
  movs  r3, r0, lsr #28
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r2, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r2, sl]  @ movhi
  cmp ip, lr
  mov r0, r0, asl #4
  bne .L7244
  b .L6995
.L7795:
  ldr r4, [sp, #12]
  rsb lr, r5, r4
  rsb r4, lr, r8
  cmp r4, #0
  ble .L6995
  add r3, r5, r8
  ldr r5, [sp, #8]
  cmp r5, r3
  bhi .L7071
  mov r3, lr, lsr #3
  mov r2, r3, asl #5
  ands  r3, lr, #7
  add r6, r0, r2
  bne .L7073
  ldr r8, [sp, #88]
  ldr r7, [sp, #64]
.L7075:
  movs  r5, r8, lsr #3
  beq .L7092
  ldr r4, .L7822+36
  mov ip, r7
  mov r0, r6
  mov lr, #0
.L7094:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L7095
  ands  r3, r2, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [ip, #14] @ movhi
.L7095:
  add lr, lr, #1
  cmp r5, lr
  add r0, r0, #32
  add ip, ip, #16
  bne .L7094
  add r6, r6, r5, asl #5
  add r7, r7, r5, asl #4
.L7092:
  ands  lr, r8, #7
  beq .L6995
  ldr r2, [r6, #0]
  ldr r4, .L7822+36
  mov r0, #0
.L7114:
  ands  r3, r2, #15
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov ip, r0, asl #1
  add r0, r0, #1
  strneh  r3, [ip, r7]  @ movhi
  cmp r0, lr
  mov r2, r2, lsr #4
  bne .L7114
  b .L6995
.L7820:
  mov r6, #0
.L7017:
  cmp lr, sl
  movcc r3, #0
  movcs r3, #1
  cmp r8, ip
  orrls r3, r3, #1
  cmp r3, #0
  beq .L7783
  b .L6995
.L7018:
  cmp lr, sl
  cmpcc ip, r8
  bcs .L6995
.L7783:
  and r3, lr, #7
  mov r2, ip, asr #3
  mov r3, r3, asl #3
  mov r1, lr, asr #3
  add r3, r3, r2, asl #6
  ldr r0, [sp, #44]
  add r3, r3, r1, asl #10
  ldr r1, [sp, #80]
  add r5, r5, r0
  add r3, r3, r1
  and r0, ip, #7
  ldrb  r2, [r3, r0]  @ zero_extendqisi2
  add r6, r6, #1
  cmp r2, #0
  ldrne r3, .L7822+36
  mov r2, r2, asl #1
  ldrneh  r2, [r2, r3]
  add r4, r4, fp
  strneh  r2, [r7, #0]  @ movhi
  cmp r9, r6
  mov lr, r4, asr #8
  mov ip, r5, asr #8
  add r7, r7, #2
  bgt .L7018
  b .L6995
.L7279:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  r6, r3, asr #3
  beq .L6995
  ldr r7, [sp, #4]
  ldr r4, .L7822+36
  add r2, r7, r5, asl #1
  mov ip, #0
  b .L7309
.L7804:
  sub r0, r0, #32
  add r2, r2, #16
.L7309:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L7310
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #14] @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #12] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #10] @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #8]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #6]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #4]  @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #2]  @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #0]  @ movhi
.L7310:
  add ip, ip, #1
  cmp r6, ip
  bne .L7804
  b .L6995
.L7704:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  r6, r3, asr #3
  beq .L6995
  ldr r3, .L7822+28
  ldr lr, [sp, #4]
  ldr r4, .L7822+36
  add r0, r0, r3
  add r2, lr, r5, asl #1
  mov r1, #0
  b .L7748
.L7805:
  sub ip, ip, #64
  add r2, r2, #16
.L7748:
  ldr lr, [r0, #68]
  cmp lr, #0
  beq .L7749
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #6]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #4]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #2]  @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #0]  @ movhi
.L7749:
  ldr lr, [ip, #0]
  cmp lr, #0
  beq .L7758
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #14] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #12] @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #10] @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #8]  @ movhi
.L7758:
  add r1, r1, #1
  cmp r6, r1
  sub r0, r0, #64
  bne .L7805
  b .L6995
.L7149:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  r6, r3, asr #3
  beq .L6995
  ldr r7, [sp, #4]
  ldr r4, .L7822+36
  add r2, r7, r5, asl #1
  mov ip, #0
  b .L7179
.L7806:
  add r0, r0, #32
  add r2, r2, #16
.L7179:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L7180
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #0]  @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #2]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #4]  @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #6]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #8]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #10] @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #12] @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #14] @ movhi
.L7180:
  add ip, ip, #1
  cmp r6, ip
  bne .L7806
  b .L6995
.L7484:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  r6, r3, asr #3
  beq .L6995
  ldr r3, .L7822+32
  ldr r7, [sp, #4]
  ldr r4, .L7822+36
  add r0, r0, r3
  add r2, r7, r5, asl #1
  mov r1, #0
  b .L7528
.L7807:
  add ip, ip, #64
  add r2, r2, #16
.L7528:
  ldr lr, [ip, #0]
  cmp lr, #0
  beq .L7529
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #0]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #2]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #4]  @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #6]  @ movhi
.L7529:
  ldr lr, [r0, #-60]
  cmp lr, #0
  beq .L7538
  ands  r3, lr, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #8]  @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #10] @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #12] @ movhi
  movs  r3, lr, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r2, #14] @ movhi
.L7538:
  add r1, r1, #1
  cmp r6, r1
  add r0, r0, #64
  bne .L7807
  b .L6995
.L7331:
  mov r3, r1, lsr #3
  ands  r2, r1, #7
  add r0, ip, r3, asl #6
  ldreq r1, [sp, #64]
  beq .L7435
  cmp r2, #3
  rsb lr, r2, #8
  bhi .L7808
  subs  r5, lr, #4
  ldr r1, [r0, #0]
  ldreq r1, [sp, #64]
  beq .L7448
  mov r3, r2, asl #3
  mov r2, r1, lsr r3
  ldr r6, .L7822+36
  mov ip, #0
.L7449:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldrne r7, [sp, #64]
  mov r1, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r1, r7]  @ movhi
  cmp ip, r5
  mov r2, r2, lsr #8
  bne .L7449
  ldr ip, [sp, #64]
  add r3, ip, lr, asl #1
  sub r1, r3, #8
.L7448:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L7454
  ands  r3, r2, #255
  ldrne lr, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r5, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r6, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r7, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r1, #6]  @ movhi
.L7454:
  add r1, r1, #8
.L7440:
  add r0, r0, #64
.L7435:
  movs  r4, r4, lsr #3
  beq .L6995
  ldr ip, .L7822+36
  mov lr, #0
  b .L7464
.L7809:
  add r0, r0, #64
  add r1, r1, #16
.L7464:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L7465
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #6]  @ movhi
.L7465:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L7474
  ands  r3, r2, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #10] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #12] @ movhi
  movs  r3, r2, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r1, #14] @ movhi
.L7474:
  add lr, lr, #1
  cmp r4, lr
  bne .L7809
  b .L6995
.L7201:
  ands  r2, lr, #7
  mov r3, lr, lsr #3
  sub r0, r0, r3, asl #5
  ldreq r4, [sp, #64]
  beq .L7250
  rsbs  r6, r2, #8
  ldr lr, [r0, #0]
  ldreq r4, [sp, #64]
  beq .L7253
  mov r3, r2, asl #2
  mov lr, lr, asl r3
  ldr r2, .L7822+36
  mov r5, #0
.L7254:
  movs  r3, lr, lsr #28
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  ldrne r7, [sp, #64]
  mov r4, r5, asl #1
  add r5, r5, #1
  strneh  r3, [r4, r7]  @ movhi
  cmp r6, r5
  mov lr, lr, asl #4
  bne .L7254
  ldr lr, [sp, #64]
  add r4, lr, r6, asl #1
.L7253:
  sub r0, r0, #32
.L7250:
  movs  r5, ip, lsr #3
  beq .L6995
  ldr r2, .L7822+36
  mov ip, #0
  b .L7260
.L7810:
  sub r0, r0, #32
  add r4, r4, #16
.L7260:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L7261
  ands  r3, lr, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #14] @ movhi
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #12] @ movhi
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #10] @ movhi
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #8]  @ movhi
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #6]  @ movhi
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #4]  @ movhi
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, lr, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  strneh  r3, [r4, #0]  @ movhi
.L7261:
  add ip, ip, #1
  cmp ip, r5
  bne .L7810
  b .L6995
.L7551:
  ands  r0, r1, #7
  mov r3, r1, lsr #3
  sub r2, ip, r3, asl #6
  ldreq r0, [sp, #64]
  beq .L7655
  cmp r0, #3
  rsb lr, r0, #8
  bhi .L7811
  subs  r5, lr, #4
  ldr r1, [r2, #4]
  ldreq r0, [sp, #64]
  beq .L7668
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  ldr r6, .L7822+36
  mov ip, #0
.L7669:
  movs  r3, r1, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldrne r7, [sp, #64]
  mov r0, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r0, r7]  @ movhi
  cmp r5, ip
  mov r1, r1, asl #8
  bne .L7669
  ldr ip, [sp, #64]
  add r3, ip, lr, asl #1
  sub r0, r3, #8
.L7668:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L7674
  ands  r3, r1, #255
  ldrne lr, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r5, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r6, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r1, lsr #24
  ldrne r7, .L7822+36
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r7]
  strneh  r3, [r0, #0]  @ movhi
.L7674:
  add r0, r0, #8
.L7660:
  sub r2, r2, #64
.L7655:
  movs  r4, r4, lsr #3
  beq .L6995
  ldr ip, .L7822+36
  mov lr, #0
  b .L7684
.L7812:
  sub r2, r2, #64
  add r0, r0, #16
.L7684:
  ldr r1, [r2, #4]
  cmp r1, #0
  beq .L7685
  ands  r3, r1, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r1, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #0]  @ movhi
.L7685:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L7694
  ands  r3, r1, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #14] @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #12] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #10] @ movhi
  movs  r3, r1, lsr #24
  movne r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  strneh  r3, [r0, #8]  @ movhi
.L7694:
  add lr, lr, #1
  cmp lr, r4
  bne .L7812
  b .L6995
.L7071:
  mov r3, lr, lsr #3
  mov r2, r3, asl #5
  ands  r3, lr, #7
  ldreq ip, [sp, #64]
  add lr, r0, r2
  beq .L7120
  rsbs  r5, r3, #8
  ldr r0, [r0, r2]
  ldreq ip, [sp, #64]
  beq .L7123
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  ldr r6, .L7824
  mov ip, #0
.L7124:
  ands  r3, r0, #15
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r6]
  ldrne r7, [sp, #64]
  mov r2, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r2, r7]  @ movhi
  cmp ip, r5
  mov r0, r0, lsr #4
  bne .L7124
  ldr r0, [sp, #64]
  add ip, r0, r5, asl #1
.L7123:
  add lr, lr, #32
.L7120:
  movs  r5, r4, lsr #3
  beq .L6995
  ldr r0, .L7824
  mov r4, #0
  b .L7130
.L7813:
  add lr, lr, #32
  add ip, ip, #16
.L7130:
  ldr r2, [lr, #0]
  cmp r2, #0
  beq .L7131
  ands  r3, r2, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #12] @ movhi
  movs  r3, r2, lsr #28
  orrne r3, r1, r3
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [ip, #14] @ movhi
.L7131:
  add r4, r4, #1
  cmp r4, r5
  bne .L7813
  b .L6995
.L7333:
  ldr r1, [sp, #88]
  rsb ip, r0, #8
  cmp r1, ip
  blt .L7814
  cmp r0, #3
  bls .L7366
  cmp ip, #0
  ldr r2, [r7, #4]
  ldreq r5, [sp, #64]
  beq .L7370
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  ldr lr, .L7824
  mov r0, #0
.L7371:
  ands  r3, r1, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  ldrne r4, [sp, #64]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp ip, r0
  mov r1, r1, lsr #8
  bne .L7371
  ldr r6, [sp, #64]
  add r5, r6, ip, asl #1
.L7370:
  ldr lr, [sp, #88]
  add r7, r7, #64
  rsb r6, ip, lr
  b .L7335
.L7203:
  ldr r3, [sp, #88]
  rsb r6, r4, #8
  cmp r3, r6
  blt .L7815
  cmp r6, #0
  ldr r2, [r0, #0]
  ldreq sl, [sp, #64]
  beq .L7216
  mov r3, r4, asl #2
  mov lr, r2, asl r3
  ldr r2, .L7824
  mov r5, #0
.L7217:
  movs  r3, lr, lsr #28
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r2]
  ldrne r7, [sp, #64]
  mov r4, r5, asl #1
  add r5, r5, #1
  strneh  r3, [r4, r7]  @ movhi
  cmp r6, r5
  mov lr, lr, asl #4
  bne .L7217
  ldr ip, [sp, #64]
  add sl, ip, r6, asl #1
.L7216:
  ldr lr, [sp, #88]
  sub r0, r0, #32
  rsb r2, r6, lr
  b .L7205
.L7073:
  ldr r7, [sp, #88]
  rsb lr, r3, #8
  cmp r7, lr
  blt .L7816
  cmp lr, #0
  ldr r2, [r6, #0]
  ldreq r7, [sp, #64]
  beq .L7086
  mov r3, r3, asl #2
  mov r2, r2, lsr r3
  ldr r4, .L7824
  mov ip, #0
.L7087:
  ands  r3, r2, #15
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  ldrne r7, [sp, #64]
  mov r0, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r0, r7]  @ movhi
  cmp lr, ip
  mov r2, r2, lsr #4
  bne .L7087
  ldr ip, [sp, #64]
  add r7, ip, lr, asl #1
.L7086:
  ldr r0, [sp, #88]
  add r6, r6, #32
  rsb r8, lr, r0
  b .L7075
.L7553:
  ldr r1, [sp, #88]
  rsb ip, r0, #8
  cmp r1, ip
  blt .L7817
  cmp r0, #3
  bls .L7586
  cmp ip, #0
  ldr r2, [r7, #0]
  ldreq r5, [sp, #64]
  beq .L7590
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  ldr lr, .L7824
  mov r0, #0
.L7591:
  movs  r3, r2, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  ldrne r4, [sp, #64]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r4]  @ movhi
  cmp ip, r0
  mov r2, r2, asl #8
  bne .L7591
  ldr r6, [sp, #64]
  add r5, r6, ip, asl #1
.L7590:
  ldr lr, [sp, #88]
  sub r7, r7, #64
  rsb r6, ip, lr
  b .L7555
.L7817:
  cmp r1, #0
  ble .L6995
  cmp r0, #3
  bls .L7559
  mov r3, r0, asl #3
  ldr r2, [r7, #0]
  sub r3, r3, #32
  mov r2, r2, asl r3
  ldr ip, .L7824
  mov r0, #0
.L7562:
  movs  r3, r2, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r4, [sp, #64]
  ldr r5, [sp, #88]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r4]  @ movhi
  cmp r5, r0
  mov r2, r2, asl #8
  bne .L7562
  b .L6995
.L7816:
  cmp r7, #0
  ble .L6995
  ldr r2, [r0, r2]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  ldr lr, .L7824
  mov ip, #0
.L7080:
  ands  r3, r0, #15
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  ldrne r4, [sp, #64]
  ldr r5, [sp, #88]
  mov r2, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r5, ip
  mov r0, r0, lsr #4
  bne .L7080
  b .L6995
.L7815:
  cmp r3, #0
  ble .L6995
  ldr r2, [r0, #0]
  mov r3, r4, asl #2
  mov r0, r2, asl r3
  ldr lr, .L7824
  mov ip, #0
.L7210:
  movs  r3, r0, lsr #28
  orr r3, r1, r3
  mov r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  ldrne r4, [sp, #64]
  ldr r5, [sp, #88]
  mov r2, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r5, ip
  mov r0, r0, asl #4
  bne .L7210
  b .L6995
.L7811:
  cmp lr, #0
  ldr r1, [r2, #0]
  ldreq r0, [sp, #64]
  beq .L7660
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  ldr r5, .L7824
  mov ip, #0
.L7661:
  movs  r3, r1, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldrne r6, [sp, #64]
  mov r0, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r0, r6]  @ movhi
  cmp ip, lr
  mov r1, r1, asl #8
  bne .L7661
  ldr r7, [sp, #64]
  sub r2, r2, #64
  add r0, r7, lr, asl #1
  b .L7655
.L7808:
  cmp lr, #0
  ldr r1, [r0, #4]
  ldreq r1, [sp, #64]
  beq .L7440
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r2, r1, lsr r3
  ldr r5, .L7824
  mov ip, #0
.L7441:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  ldrne r6, [sp, #64]
  mov r1, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r1, r6]  @ movhi
  cmp ip, lr
  mov r2, r2, lsr #8
  bne .L7441
  ldr r7, [sp, #64]
  add r0, r0, #64
  add r1, r7, lr, asl #1
  b .L7435
.L7814:
  cmp r1, #0
  ble .L6995
  cmp r0, #3
  bls .L7339
  mov r3, r0, asl #3
  ldr r2, [r7, #4]
  sub r3, r3, #32
  mov r1, r2, lsr r3
  ldr ip, .L7824
  mov r0, #0
.L7342:
  ands  r3, r1, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r4, [sp, #64]
  ldr r5, [sp, #88]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r5, r0
  mov r1, r1, lsr #8
  bne .L7342
  b .L6995
.L7821:
  mov r6, #0
  b .L7053
.L7586:
  subs  lr, ip, #4
  ldr r2, [r7, #4]
  ldreq r1, [sp, #64]
  beq .L7598
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  ldr r4, .L7824
  mov r0, #0
.L7599:
  movs  r3, r2, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  ldrne r5, [sp, #64]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r5]  @ movhi
  cmp lr, r0
  mov r2, r2, asl #8
  bne .L7599
  ldr r6, [sp, #64]
  add r3, r6, ip, asl #1
  sub r1, r3, #8
.L7598:
  ldr r2, [r7, #0]
  cmp r2, #0
  beq .L7604
  ands  r3, r2, #255
  ldrne lr, .L7824
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r0, .L7824
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r4, .L7824
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r1, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r5, .L7824
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r1, #0]  @ movhi
.L7604:
  add r5, r1, #8
  b .L7590
.L7366:
  subs  lr, ip, #4
  ldr r2, [r7, #0]
  ldreq r1, [sp, #64]
  beq .L7378
  mov r3, r0, asl #3
  mov r1, r2, lsr r3
  ldr r4, .L7824
  mov r0, #0
.L7379:
  ands  r3, r1, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  ldrne r5, [sp, #64]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r5]  @ movhi
  cmp r0, lr
  mov r1, r1, lsr #8
  bne .L7379
  ldr r6, [sp, #64]
  add r3, r6, ip, asl #1
  sub r1, r3, #8
.L7378:
  ldr r2, [r7, #4]
  cmp r2, #0
  beq .L7384
  ands  r3, r2, #255
  ldrne lr, .L7824
  movne r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r0, .L7824
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r0]
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r4, .L7824
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r5, .L7824
  movne r3, r3, asl #1
  ldrneh  r3, [r3, r5]
  strneh  r3, [r1, #6]  @ movhi
.L7384:
  add r5, r1, #8
  b .L7370
.L7819:
  ldr r4, [sp, #20]
  b .L7784
.L7818:
  mov ip, fp
  b .L7782
.L7559:
  ldr r6, [sp, #88]
  mov r3, r0, asl #3
  ldr r1, [r7, #4]
  add r2, r6, r0
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L7566
  cmp r6, #0
  ldrne ip, .L7824
  movne r0, #0
  beq .L6995
.L7582:
  movs  r3, r1, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r7, [sp, #64]
  ldr lr, [sp, #88]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r7]  @ movhi
  cmp lr, r0
  mov r1, r1, asl #8
  bne .L7582
  b .L6995
.L7339:
  ldr r6, [sp, #88]
  ldr r3, [r7, #0]
  add r2, r6, r0
  cmp r2, #4
  mov r1, r0, asl #3
  mov r2, r3, lsr r1
  bhi .L7346
  cmp r6, #0
  ldrne ip, .L7824
  movne r0, #0
  beq .L6995
.L7362:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, ip]
  ldrne r7, [sp, #64]
  ldr lr, [sp, #88]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r7]  @ movhi
  cmp lr, r0
  mov r2, r2, lsr #8
  bne .L7362
  b .L6995
.L7566:
  rsbs  ip, r0, #4
  ldreq lr, [sp, #64]
  beq .L7571
  ldr lr, .L7824
  mov r0, #0
.L7572:
  movs  r3, r1, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  ldrne r4, [sp, #64]
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r0, ip
  mov r1, r1, asl #8
  bne .L7572
  ldr r5, [sp, #64]
  add lr, r5, ip, asl #1
.L7571:
  ldr r6, [sp, #88]
  ldr r2, [r7, #0]
  subs  ip, r6, ip
  beq .L6995
  ldr r4, .L7824
  mov r0, #0
.L7578:
  movs  r3, r2, lsr #24
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r0, ip
  mov r2, r2, asl #8
  bne .L7578
  b .L6995
.L7346:
  rsbs  ip, r0, #4
  ldreq lr, [sp, #64]
  beq .L7351
  ldr lr, .L7824
  mov r0, #0
.L7352:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, lr]
  ldrne r4, [sp, #64]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r4]  @ movhi
  cmp r0, ip
  mov r2, r2, lsr #8
  bne .L7352
  ldr r5, [sp, #64]
  add lr, r5, ip, asl #1
.L7351:
  ldr r6, [sp, #88]
  ldr r2, [r7, #4]
  subs  ip, r6, ip
  beq .L6995
  ldr r4, .L7824
  mov r0, #0
.L7358:
  ands  r3, r2, #255
  mov r3, r3, asl #1
  ldrneh  r3, [r3, r4]
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r0, ip
  mov r2, r2, lsr #8
  bne .L7358
  b .L6995
.L7825:
  .align  2
.L7824:
  .word palette_ram_converted+512
  .size render_scanline_obj_normal_2D, .-render_scanline_obj_normal_2D
  .align  2
  .global render_scanline_obj_color16_1D
  .type render_scanline_obj_color16_1D, %function
render_scanline_obj_color16_1D:
  @ args = 0, pretend = 0, frame = 112
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr ip, .L8668
  sub sp, sp, #112
  ldrh  r4, [ip, #6]
  add r0, r0, r0, asl #2
  str r4, [sp, #32]
  ldr r5, [sp, #32]
  ldrh  r4, [ip, #80]
  ldr ip, .L8668+4
  add r0, r5, r0, asl #5
  ldr ip, [ip, r0, asl #2]
  mov lr, r4, lsr #11
  and lr, lr, #2
  mov r4, r4, asl #27
  str ip, [sp, #36]
  orr lr, lr, r4, lsr #31
  cmp ip, #0
  ldr ip, .L8668+8
  mov lr, lr, asl #9
  add r0, ip, r0, asl #7
  orr lr, lr, #256
  str r0, [sp, #40]
  str r1, [sp, #8]
  str r2, [sp, #4]
  str r3, [sp, #0]
  str lr, [sp, #24]
  beq .L8614
  mov r8, #0
  add r6, r3, r1, asl #1
  rsb r7, r1, r2
  str r6, [sp, #84]
  str r7, [sp, #108]
  str r8, [sp, #28]
  mov ip, r8
.L7829:
  ldr lr, [sp, #40]
  ldr r0, .L8668+12
  ldrb  r3, [ip, lr]  @ zero_extendqisi2
  mov r3, r3, asl #3
  ldrh  r4, [r3, r0]
  add r3, r3, r0
  ldrh  r1, [r3, #2]
  mov r5, r4, lsr #12
  and r2, r5, #12
  orr r0, r2, r1, lsr #14
  and ip, r4, #255
  mov r2, r1, asl #23
  cmp ip, #160
  ldrh  lr, [r3, #4]
  mov r6, r2, asr #23
  ldr r3, .L8668+16
  ldr r2, .L8668+20
  subgt ip, ip, #256
  tst r4, #256
  ldr r7, [r2, r0, asl #2]
  ldr sl, [r3, r0, asl #2]
  beq .L7832
  tst r4, #8192
  beq .L7834
  tst r4, #512
  mov r3, r1, lsr #4
  ldr r4, .L8668+12
  and r3, r3, #992
  add r3, r3, r4
  add r2, r7, r7, lsr #31
  ldrh  r5, [r3, #30]
  mov r4, r2, asr #1
  add r1, sl, sl, lsr #31
  ldr r2, [sp, #8]
  movne r0, r4, asl #1
  str r5, [sp, #12]
  mov r5, r1, asr #1
  strne r0, [sp, #56]
  moveq r9, r7
  streq r4, [sp, #56]
  moveq r0, r5
  movne r9, r7, asl #1
  movne r0, r5, asl #1
  cmp r6, r2
  ldrh  r8, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  fp, [r3, #22]
  bge .L7839
  rsb r2, r6, r2
  rsb r9, r2, r9
  cmp r9, #0
  ble .L7841
  ldr r3, [sp, #56]
  ldr r6, [sp, #8]
  rsb r3, r2, r3
  str r3, [sp, #56]
.L7839:
  ldr r2, [sp, #4]
  add r3, r6, r9
  cmp r3, r2
  blt .L7843
  rsb r9, r6, r2
  cmp r9, #0
  ble .L7841
.L7843:
  mov r3, r8, asl #16
  ldr r8, [sp, #12]
  mov r2, r1, asl #16
  mov r2, r2, asr #16
  mov r1, r8, asl #16
  add r0, ip, r0
  str r2, [sp, #48]
  mov ip, r1, asr #16
  ldr r2, [sp, #32]
  ldr r1, [sp, #0]
  mov r4, r4, asl #8
  mov r3, r3, asr #16
  mov r5, r5, asl #8
  cmp fp, #0
  str r4, [sp, #92]
  str r3, [sp, #44]
  str r5, [sp, #52]
  add r8, r1, r6, asl #1
  rsb r4, r0, r2
  bne .L7845
  mov r3, r5
  mla r3, r4, ip, r3
  mov r0, r3, asr #8
  cmp r0, sl
  bcs .L7841
  cmp r7, #0
  add r3, r7, #7
  movge r3, r7
  mov r2, lr, asl #22
  mov r3, r3, asr #3
  mov r3, r3, asl #1
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L8668+24
  add r0, r0, ip, asl #2
  cmp r9, #0
  add lr, r3, r0, asl #3
  ble .L7841
  ldr r3, [sp, #48]
  ldr r2, [sp, #56]
  mul r3, r4, r3
  ldr r4, [sp, #44]
  ldr r5, [sp, #92]
  mul r2, r4, r2
  rsb r3, r2, r3
  add r0, r5, r3
  mov r4, r0, asr #8
  cmp r4, r7
  movcs ip, fp
  bcs .L7851
  b .L8664
.L7852:
  cmp r4, r7
  bcc .L8628
.L7851:
  ldr r6, [sp, #44]
  add ip, ip, #1
  add r0, r0, r6
  cmp r9, ip
  mov r4, r0, asr #8
  add r8, r8, #2
  bne .L7852
.L7841:
  ldr r0, [sp, #28]
  ldr r1, [sp, #36]
  add r0, r0, #1
  cmp r0, r1
  str r0, [sp, #28]
  beq .L8614
.L8646:
  ldr ip, [sp, #28]
  b .L7829
.L7832:
  ldr r0, [sp, #32]
  tst r1, #8192
  rsb ip, ip, r0
  rsbne r3, ip, sl
  subne ip, r3, #1
  mov r2, r1, asl #19
  and r3, r5, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L7841
  .p2align 2
.L7913:
  .word .L7909
  .word .L7910
  .word .L7911
  .word .L7912
.L7909:
  cmp r7, #0
  add r3, r7, #7
  mov r2, lr, asl #22
  movge r3, r7
  mov r5, r3, asr #3
  mov r2, r2, lsr #22
  mov r3, ip, lsr #3
  mla r0, r5, r3, r2
  ldr r2, [sp, #8]
  and r1, ip, #7
  ldr r3, .L8668+24
  add r1, r1, r0, asl #3
  cmp r6, r2
  mov r2, lr, lsr #8
  add r0, r3, r1, asl #2
  and r1, r2, #240
  blt .L8641
  ldr ip, [sp, #4]
  add r3, r6, r7
  cmp ip, r3
  bhi .L7995
  rsb r8, r6, ip
  cmp r8, #0
  ble .L7841
  ldr lr, [sp, #0]
  movs  r7, r8, lsr #3
  add r2, lr, r6, asl #1
  beq .L7998
  mov r5, r2
  mov lr, r0
  mov ip, #0
.L8000:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L8001
  ands  r3, r4, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #0]  @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #2]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #10] @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #12] @ movhi
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r4
  strneh  r3, [r5, #14] @ movhi
.L8001:
  add ip, ip, #1
  cmp ip, r7
  add lr, lr, #32
  add r5, r5, #16
  bne .L8000
  add r0, r0, r7, asl #5
  add r2, r2, r7, asl #4
.L7998:
  ands  lr, r8, #7
  beq .L7841
  ldr r0, [r0, #0]
  mov r4, #0
.L8020:
  ands  r3, r0, #15
  ldr r5, [sp, #24]
  orr r3, r1, r3
  mov ip, r4, asl #1
  orr r3, r3, r5
  add r4, r4, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp r4, lr
  mov r0, r0, lsr #4
  bne .L8020
  b .L7841
.L7910:
  cmp r7, #0
  add r3, r7, #7
  mov r2, lr, asl #22
  movge r3, r7
  mov r5, r3, asr #3
  mov r2, r2, lsr #22
  mov r1, ip, lsr #3
  mla r0, r5, r1, r2
  subs  r3, r7, #8
  submi r3, r7, #1
  ldr r8, [sp, #8]
  add r0, r0, r3, asr #3
  and r2, ip, #7
  ldr r3, .L8668+24
  add r2, r2, r0, asl #3
  mov r1, lr, lsr #8
  cmp r6, r8
  add r0, r3, r2, asl #2
  and r1, r1, #240
  blt .L8642
  ldr r2, [sp, #4]
  add r3, r6, r7
  cmp r2, r3
  bhi .L8125
  rsb r8, r6, r2
  cmp r8, #0
  ble .L7841
  ldr r3, [sp, #0]
  movs  r7, r8, lsr #3
  add r2, r3, r6, asl #1
  beq .L8128
  mov r5, r2
  mov lr, r0
  mov ip, #0
.L8130:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L8131
  ands  r3, r4, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #14] @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #12] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #10] @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r4
  strneh  r3, [r5, #0]  @ movhi
.L8131:
  add ip, ip, #1
  cmp ip, r7
  sub lr, lr, #32
  add r5, r5, #16
  bne .L8130
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add r2, r2, r7, asl #4
.L8128:
  ands  lr, r8, #7
  beq .L7841
  ldr r0, [r0, #0]
  mov r4, #0
.L8150:
  movs  r3, r0, lsr #28
  ldr r5, [sp, #24]
  orr r3, r1, r3
  mov ip, r4, asl #1
  orr r3, r3, r5
  add r4, r4, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp r4, lr
  mov r0, r0, asl #4
  bne .L8150
  b .L7841
.L7911:
  cmp r7, #0
  add r3, r7, #7
  mov r1, lr, asl #22
  movge r3, r7
  mov r2, ip, lsr #3
  mov lr, r3, asr #3
  mov r1, r1, lsr #22
  mov r2, r2, asl #1
  mla r0, r2, lr, r1
  and r3, ip, #7
  add r3, r3, r0, asl #2
  ldr r8, [sp, #8]
  mov r0, r3, asl #3
  ldr r3, .L8668+24
  cmp r6, r8
  add r1, r0, r3
  blt .L8643
  add r3, r6, r7
  ldr r7, [sp, #4]
  cmp r7, r3
  bhi .L8330
  rsb r8, r6, r7
  cmp r8, #0
  ble .L7841
  ldr ip, [sp, #0]
  movs  r7, r8, lsr #3
  add r2, ip, r6, asl #1
  beq .L8333
  ldr r3, .L8668+32
  mov r5, r2
  add r0, r0, r3
  mov lr, r1
  mov ip, #0
.L8335:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L8336
  ands  r3, r4, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r5, #0]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r5, #2]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r5, #4]  @ movhi
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #24]
  orrne r3, r3, r4
  strneh  r3, [r5, #6]  @ movhi
.L8336:
  ldr r4, [r0, #-60]
  cmp r4, #0
  beq .L8345
  ands  r3, r4, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r5, #10] @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r5, #12] @ movhi
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #24]
  orrne r3, r3, r4
  strneh  r3, [r5, #14] @ movhi
.L8345:
  add ip, ip, #1
  cmp r7, ip
  add lr, lr, #64
  add r5, r5, #16
  add r0, r0, #64
  bne .L8335
  add r1, r1, r7, asl #6
  add r2, r2, r7, asl #4
.L8333:
  ands  lr, r8, #7
  beq .L7841
  cmp lr, #3
  ldrls r0, [r1, #0]
  bls .L8368
  ldr r0, [r1, #0]
  cmp r0, #0
  beq .L8358
  ands  r3, r0, #255
  ldrne r5, [sp, #24]
  orrne r3, r3, r5
  strneh  r3, [r2, #0]  @ movhi
  mov r3, r0, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r2, #2]  @ movhi
  mov r3, r0, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r2, #4]  @ movhi
  movs  r3, r0, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r2, #6]  @ movhi
.L8358:
  subs  lr, lr, #4
  ldr r0, [r1, #4]
  addne r2, r2, #8
  beq .L7841
.L8368:
  mov r1, #0
.L8369:
  ldr ip, [sp, #24]
  ands  r3, r0, #255
  orr r3, r3, ip
  mov ip, r1, asl #1
  add r1, r1, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp lr, r1
  mov r0, r0, lsr #8
  bhi .L8369
  b .L7841
.L7912:
  cmp r7, #0
  add r2, r7, #7
  movge r2, r7
  subs  r3, r7, #8
  submi r3, r7, #1
  mov r1, ip, lsr #3
  mov r5, r2, asr #3
  mov r3, r3, asr #3
  mla r0, r5, r1, r3
  mov r2, lr, asl #22
  mov r2, r2, lsr #22
  add r2, r2, r0, asl #1
  and r3, ip, #7
  add r3, r3, r2, asl #2
  ldr ip, [sp, #8]
  mov r0, r3, asl #3
  ldr r3, .L8668+24
  cmp r6, ip
  add r1, r0, r3
  blt .L8644
  add r3, r6, r7
  ldr r7, [sp, #4]
  cmp r3, r7
  bcc .L8550
  rsb r8, r6, r7
  cmp r8, #0
  ble .L7841
  ldr ip, [sp, #0]
  movs  r7, r8, lsr #3
  add r6, ip, r6, asl #1
  beq .L8553
  ldr r3, .L8668+28
  mov r5, r6
  add r0, r0, r3
  mov lr, r1
  mov ip, #0
.L8555:
  ldr r4, [r0, #68]
  cmp r4, #0
  beq .L8556
  ands  r3, r4, #255
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #24]
  orrne r3, r3, r4
  strneh  r3, [r5, #0]  @ movhi
.L8556:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L8565
  ands  r3, r4, #255
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r5, #14] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r5, #12] @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r5, #10] @ movhi
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #24]
  orrne r3, r3, r4
  strneh  r3, [r5, #8]  @ movhi
.L8565:
  add ip, ip, #1
  cmp ip, r7
  sub lr, lr, #64
  add r5, r5, #16
  sub r0, r0, #64
  bne .L8555
  rsb r3, r7, r7, asl #26
  add r1, r1, r3, asl #6
  add r6, r6, r7, asl #4
.L8553:
  ands  ip, r8, #7
  beq .L7841
  cmp ip, #3
  ldrls r2, [r1, #4]
  bls .L8588
  ldr r2, [r1, #4]
  cmp r2, #0
  beq .L8578
  ands  r3, r2, #255
  ldrne r5, [sp, #24]
  orrne r3, r3, r5
  strneh  r3, [r6, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r6, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r6, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne lr, [sp, #24]
  orrne r3, r3, lr
  strneh  r3, [r6, #0]  @ movhi
.L8578:
  subs  ip, ip, #4
  ldr r2, [r1, #0]
  addne r6, r6, #8
  beq .L7841
.L8588:
  mov r1, #0
.L8589:
  ldr r0, [sp, #24]
  movs  r3, r2, lsr #24
  orr r3, r3, r0
  mov r0, r1, asl #1
  add r1, r1, #1
  strneh  r3, [r0, r6]  @ movhi
  cmp ip, r1
  mov r2, r2, asl #8
  bhi .L8589
  b .L7841
.L7834:
  mov r3, r1, lsr #4
  ldr r1, .L8668+12
  and r3, r3, #992
  add r3, r3, r1
  tst r4, #512
  ldrh  r4, [r3, #30]
  add r2, r7, r7, lsr #31
  add r1, sl, sl, lsr #31
  str r4, [sp, #20]
  mov r4, r2, asr #1
  ldr r2, [sp, #8]
  mov r5, r1, asr #1
  ldrh  r8, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq fp, r7
  moveq r9, r4
  moveq r0, r5
  movne fp, r7, asl #1
  movne r9, r4, asl #1
  movne r0, r5, asl #1
  cmp r6, r2
  str r3, [sp, #16]
  bge .L7872
  rsb r2, r6, r2
  rsb fp, r2, fp
  cmp fp, #0
  ble .L7841
  ldr r6, [sp, #8]
  rsb r9, r2, r9
.L7872:
  ldr r2, [sp, #4]
  add r3, r6, fp
  cmp r3, r2
  blt .L7875
  rsb fp, r6, r2
  cmp fp, #0
  ble .L7841
.L7875:
  mov r3, r8, asl #16
  ldr r8, [sp, #20]
  add ip, ip, r0
  mov r2, r1, asl #16
  ldr r0, [sp, #16]
  mov r1, r8, asl #16
  mov r2, r2, asr #16
  mov r1, r1, asr #16
  cmp r0, #0
  str r2, [sp, #68]
  mov r0, lr, lsr #8
  str r1, [sp, #76]
  ldr r2, [sp, #32]
  ldr r1, [sp, #0]
  mov r4, r4, asl #8
  mov r3, r3, asr #16
  and r0, r0, #240
  str r4, [sp, #88]
  str r3, [sp, #64]
  mov r5, r5, asl #8
  add r8, r1, r6, asl #1
  rsb r4, ip, r2
  str r0, [sp, #104]
  bne .L7877
  ldr r3, [sp, #76]
  mla r3, r4, r3, r5
  mov r0, r3, asr #8
  cmp r0, sl
  bcs .L7841
  cmp r7, #0
  add r3, r7, #7
  mov r2, lr, asl #22
  movge r3, r7
  mov r1, r0, lsr #3
  mov r3, r3, asr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L8668+24
  add r0, r0, ip, asl #3
  cmp fp, #0
  add r1, r3, r0, asl #2
  ble .L7841
  ldr r3, [sp, #68]
  ldr r2, [sp, #64]
  mul r3, r4, r3
  mul r2, r9, r2
  ldr r4, [sp, #88]
  rsb r3, r2, r3
  add r0, r4, r3
  mov r4, r0, asr #8
  cmp r4, r7
  ldrcs r5, [sp, #16]
  bcs .L7883
  b .L8665
.L7884:
  cmp r4, r7
  bcc .L8630
.L7883:
  ldr r6, [sp, #64]
  add r5, r5, #1
  add r0, r0, r6
  cmp fp, r5
  mov r4, r0, asr #8
  add r8, r8, #2
  bne .L7884
  ldr r0, [sp, #28]
  ldr r1, [sp, #36]
  add r0, r0, #1
  cmp r0, r1
  str r0, [sp, #28]
  bne .L8646
.L8614:
  add sp, sp, #112
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L7845:
  cmp r7, #0
  add r1, r7, #7
  mov r2, lr, asl #22
  movge r1, r7
  ldr r3, .L8668+24
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #6
  cmp r9, #0
  str r2, [sp, #100]
  str r1, [sp, #60]
  ble .L7841
  mov r3, fp, asl #16
  mov fp, r3, asr #16
  ldr r3, [sp, #48]
  mul r2, r4, ip
  mul r3, r4, r3
  ldr r1, [sp, #56]
  ldr r4, [sp, #44]
  ldr r0, [sp, #56]
  mul r1, fp, r1
  mul r0, r4, r0
  ldr r6, [sp, #92]
  ldr ip, [sp, #52]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r5, r6, r3
  add lr, ip, r2
  mov r4, lr, asr #8
  mov ip, r5, asr #8
  cmp ip, r7
  cmpcc r4, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L7861
  b .L8666
.L7862:
  cmp ip, r7
  cmpcc r4, sl
  bcc .L7863
.L7861:
  ldr r0, [sp, #44]
  add r6, r6, #1
  add r5, r5, r0
  add lr, lr, fp
  cmp r9, r6
  mov ip, r5, asr #8
  mov r4, lr, asr #8
  add r8, r8, #2
  bne .L7862
  b .L7841
.L7877:
  cmp r7, #0
  add r1, r7, #7
  mov r2, lr, asl #22
  movge r1, r7
  ldr r3, .L8668+24
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #5
  cmp fp, #0
  str r2, [sp, #96]
  str r1, [sp, #80]
  ble .L7841
  ldr r6, [sp, #16]
  ldr r2, [sp, #76]
  mov r3, r6, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #72]
  ldr r1, [sp, #72]
  ldr r3, [sp, #68]
  ldr r0, [sp, #64]
  mul r2, r4, r2
  mul r3, r4, r3
  mul r1, r9, r1
  mul r0, r9, r0
  ldr ip, [sp, #88]
  rsb r2, r1, r2
  rsb r3, r0, r3
  add lr, ip, r3
  add r5, r5, r2
  mov r4, lr, asr #8
  mov r2, r5, asr #8
  cmp r4, r7
  cmpcc r2, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L7896
  b .L8667
.L7897:
  cmp r4, r7
  cmpcc r2, sl
  bcc .L7899
.L7896:
  ldr r0, [sp, #64]
  ldr r1, [sp, #72]
  add r6, r6, #1
  add lr, lr, r0
  add r5, r5, r1
  cmp fp, r6
  mov r4, lr, asr #8
  mov r2, r5, asr #8
  add r8, r8, #2
  bne .L7897
  b .L7841
.L8649:
  ldr r3, [sp, #96]
  and r0, r2, #7
  add r0, r3, r0, asl #2
  and r1, r2, #7
  mov r3, r2, asr #3
  ldr r2, [sp, #80]
  mov ip, r4, asr #1
  mul r2, r3, r2
  and r9, ip, #3
  ldr ip, [sp, #96]
  mov r3, r4, asr #1
  add r1, ip, r1, asl #2
  and ip, r3, #3
  mov r3, r4, asr #3
  add r2, r2, r3, asl #5
  add r3, r0, r2
  tst r4, #1
  add r0, r1, r2
  ldreqb  r3, [r0, ip]  @ zero_extendqisi2
  ldrneb  r3, [r3, r9]  @ zero_extendqisi2
  ldr r4, [sp, #104]
  movne r0, r3, lsr #4
  andeq r0, r3, #15
  ldr ip, [sp, #24]
  ldr r2, [sp, #72]
  orr r3, r0, r4
  ldr r1, [sp, #64]
  cmp r0, #0
  add r6, r6, #1
  orr r3, r3, ip
  strneh  r3, [r8, #0]  @ movhi
  add lr, lr, r1
  add r5, r5, r2
  cmp fp, r6
  mov r4, lr, asr #8
  mov r2, r5, asr #8
  add r8, r8, #2
  ble .L7841
.L7899:
  cmp r2, sl
  cmpcc r4, r7
  bcc .L8649
  b .L7841
.L7886:
  cmp r4, r7
  bcs .L7841
.L8630:
  mov r3, r4, asr #1
  and sl, r3, #3
  mov r3, r4, asr #3
  mov r3, r3, asl #5
  mov r2, r4, asr #1
  tst r4, #1
  add ip, r3, r1
  and r6, r2, #3
  add r2, r3, r1
  ldreqb  r3, [r2, r6]  @ zero_extendqisi2
  ldrneb  r3, [ip, sl]  @ zero_extendqisi2
  ldr lr, [sp, #104]
  movne r2, r3, lsr #4
  andeq r2, r3, #15
  cmp r2, #0
  orr r3, r2, lr
  ldr r2, [sp, #24]
  ldr ip, [sp, #64]
  add r5, r5, #1
  orr r3, r3, r2
  strneh  r3, [r8, #0]  @ movhi
  add r0, r0, ip
  cmp fp, r5
  mov r4, r0, asr #8
  add r8, r8, #2
  bgt .L7886
  b .L7841
.L7854:
  cmp r4, r7
  bcs .L7841
.L8628:
  ldr r1, [sp, #44]
  mov r3, r4, asr #3
  add r0, r0, r1
  add r3, lr, r3, asl #6
  and r1, r4, #7
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  ldr r3, [sp, #24]
  cmp r2, #0
  add ip, ip, #1
  orr r2, r2, r3
  strneh  r2, [r8, #0]  @ movhi
  cmp r9, ip
  mov r4, r0, asr #8
  add r8, r8, #2
  bgt .L7854
  b .L7841
.L8669:
  .align  2
.L8668:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word oam_ram
  .word obj_height_table
  .word obj_width_table
  .word vram+65536
  .word vram+65472
  .word vram+65600
.L8644:
  rsb r0, r6, ip
  rsb r4, r0, r7
  cmp r4, #0
  ble .L7841
  ldr lr, [sp, #4]
  add r3, r6, r7
  cmp lr, r3
  bhi .L8397
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub r6, r1, r3, asl #6
  bne .L8399
  ldr r5, [sp, #108]
  ldr r4, [sp, #84]
.L8401:
  movs  lr, r5, lsr #3
  beq .L8459
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L8461:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L8462
  ands  r3, r2, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r1, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #0]  @ movhi
.L8462:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L8471
  ands  r3, r2, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #12] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r1, #10] @ movhi
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #8]  @ movhi
.L8471:
  add ip, ip, #1
  cmp ip, lr
  sub r0, r0, #64
  add r1, r1, #16
  bne .L8461
  rsb r3, lr, lr, asl #26
  add r6, r6, r3, asl #6
  add r4, r4, lr, asl #4
.L8459:
  ands  ip, r5, #7
  beq .L7841
  cmp ip, #3
  ldrls r2, [r6, #4]
  bls .L8494
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L8484
  ands  r3, r2, #255
  ldrne lr, [sp, #24]
  orrne r3, r3, lr
  strneh  r3, [r4, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r0, [sp, #24]
  orrne r3, r3, r0
  strneh  r3, [r4, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #24]
  orrne r3, r3, r1
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r4, #0]  @ movhi
.L8484:
  subs  ip, ip, #4
  ldr r2, [r6, #0]
  addne r4, r4, #8
  beq .L7841
.L8494:
  mov r1, #0
.L8495:
  ldr r5, [sp, #24]
  movs  r3, r2, lsr #24
  mov r0, r1, asl #1
  orr r3, r3, r5
  add r1, r1, #1
  strneh  r3, [r0, r4]  @ movhi
  cmp ip, r1
  mov r2, r2, asl #8
  bhi .L8495
  b .L7841
.L8643:
  rsb r0, r6, r8
  rsb r4, r0, r7
  cmp r4, #0
  ble .L7841
  ldr ip, [sp, #4]
  add r3, r6, r7
  cmp ip, r3
  bhi .L8177
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  add r6, r1, r3, asl #6
  bne .L8179
  ldr r5, [sp, #108]
  ldr r4, [sp, #84]
.L8181:
  movs  lr, r5, lsr #3
  beq .L8239
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L8241:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L8242
  ands  r3, r2, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #6]  @ movhi
.L8242:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L8251
  ands  r3, r2, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #10] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r1, #12] @ movhi
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #14] @ movhi
.L8251:
  add ip, ip, #1
  cmp lr, ip
  add r0, r0, #64
  add r1, r1, #16
  bne .L8241
  add r6, r6, lr, asl #6
  add r4, r4, lr, asl #4
.L8239:
  ands  ip, r5, #7
  beq .L7841
  cmp ip, #3
  ldrls r1, [r6, #0]
  bls .L8274
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L8264
  ands  r3, r2, #255
  ldrne lr, [sp, #24]
  orrne r3, r3, lr
  strneh  r3, [r4, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r0, [sp, #24]
  orrne r3, r3, r0
  strneh  r3, [r4, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #24]
  orrne r3, r3, r1
  strneh  r3, [r4, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r4, #6]  @ movhi
.L8264:
  subs  ip, ip, #4
  ldr r1, [r6, #4]
  addne r4, r4, #8
  beq .L7841
.L8274:
  mov r2, #0
.L8275:
  ldr r5, [sp, #24]
  ands  r3, r1, #255
  mov r0, r2, asl #1
  orr r3, r3, r5
  add r2, r2, #1
  strneh  r3, [r0, r4]  @ movhi
  cmp ip, r2
  mov r1, r1, lsr #8
  bhi .L8275
  b .L7841
.L8642:
  rsb r4, r6, r8
  rsb ip, r4, r7
  cmp ip, #0
  ble .L7841
  ldr lr, [sp, #4]
  add r3, r6, r7
  cmp lr, r3
  bhi .L8047
  mov r3, r4, lsr #3
  ands  lr, r4, #7
  sub r0, r0, r3, asl #5
  bne .L8049
  ldr r2, [sp, #108]
  ldr r8, [sp, #84]
.L8051:
  movs  r7, r2, lsr #3
  beq .L8068
  mov r5, r8
  mov lr, r0
  mov r6, #0
.L8070:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L8071
  ands  r3, r4, #15
  ldrne ip, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #14] @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne ip, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #12] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne ip, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #10] @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne ip, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne ip, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne ip, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne ip, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r4
  strneh  r3, [r5, #0]  @ movhi
.L8071:
  add r6, r6, #1
  cmp r6, r7
  sub lr, lr, #32
  add r5, r5, #16
  bne .L8070
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add r8, r8, r7, asl #4
.L8068:
  ands  lr, r2, #7
  beq .L7841
  ldr r0, [r0, #0]
  mov ip, #0
.L8090:
  movs  r3, r0, lsr #28
  ldr r5, [sp, #24]
  orr r3, r1, r3
  mov r2, ip, asl #1
  orr r3, r3, r5
  add ip, ip, #1
  strneh  r3, [r2, r8]  @ movhi
  cmp ip, lr
  mov r0, r0, asl #4
  bne .L8090
  b .L7841
.L8641:
  ldr r3, [sp, #8]
  rsb r4, r6, r3
  rsb r5, r4, r7
  cmp r5, #0
  ble .L7841
  add r3, r6, r7
  ldr r6, [sp, #4]
  cmp r6, r3
  bhi .L7917
  mov r3, r4, lsr #3
  mov r2, r3, asl #5
  ands  r3, r4, #7
  add r5, r0, r2
  bne .L7919
  ldr r7, [sp, #108]
  ldr r6, [sp, #84]
.L7921:
  movs  r4, r7, lsr #3
  beq .L7938
  mov ip, r6
  mov r0, r5
  mov lr, #0
.L7940:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L7941
  ands  r3, r2, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #12] @ movhi
  movs  r3, r2, lsr #28
  ldrne r2, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r2
  strneh  r3, [ip, #14] @ movhi
.L7941:
  add lr, lr, #1
  cmp r4, lr
  add r0, r0, #32
  add ip, ip, #16
  bne .L7940
  add r5, r5, r4, asl #5
  add r6, r6, r4, asl #4
.L7938:
  ands  lr, r7, #7
  beq .L7841
  ldr r2, [r5, #0]
  mov r0, #0
.L7960:
  ands  r3, r2, #15
  ldr r4, [sp, #24]
  orr r3, r1, r3
  mov ip, r0, asl #1
  orr r3, r3, r4
  add r0, r0, #1
  strneh  r3, [ip, r6]  @ movhi
  cmp r0, lr
  mov r2, r2, lsr #4
  bne .L7960
  b .L7841
.L8666:
  mov r6, #0
.L7863:
  cmp r4, sl
  movcc r3, #0
  movcs r3, #1
  cmp r7, ip
  orrls r3, r3, #1
  cmp r3, #0
  beq .L8629
  b .L7841
.L7864:
  cmp r4, sl
  cmpcc ip, r7
  bcs .L7841
.L8629:
  and r3, r4, #7
  mov r2, ip, asr #3
  mov r3, r3, asl #3
  add r3, r3, r2, asl #6
  ldr r2, [sp, #100]
  ldr r0, [sp, #60]
  add r3, r3, r2
  mov r2, r4, asr #3
  mla r0, r2, r0, r3
  ldr r1, [sp, #44]
  add r6, r6, #1
  add r5, r5, r1
  and r1, ip, #7
  ldrb  r3, [r0, r1]  @ zero_extendqisi2
  ldr r0, [sp, #24]
  cmp r3, #0
  orr r3, r3, r0
  strneh  r3, [r8, #0]  @ movhi
  add lr, lr, fp
  cmp r9, r6
  mov r4, lr, asr #8
  mov ip, r5, asr #8
  add r8, r8, #2
  bgt .L7864
  b .L7841
.L8125:
  cmp r5, #0
  beq .L7841
  ldr r7, [sp, #0]
  mov ip, #0
  add r2, r7, r6, asl #1
  b .L8155
.L8650:
  sub r0, r0, #32
  add r2, r2, #16
.L8155:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L8156
  ands  r3, r4, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r2, #14] @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne lr, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, lr
  strneh  r3, [r2, #12] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r2, #10] @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r2, #8]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r2, #6]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne lr, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, lr
  strneh  r3, [r2, #4]  @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r2, #2]  @ movhi
  movs  r3, r4, lsr #28
  ldrne r7, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r2, #0]  @ movhi
.L8156:
  add ip, ip, #1
  cmp r5, ip
  bne .L8650
  b .L7841
.L8550:
  cmp r5, #0
  beq .L7841
  ldr r3, [sp, #0]
  mov ip, #0
  add r2, r3, r6, asl #1
  ldr r3, .L8668+28
  add r0, r0, r3
  b .L8594
.L8651:
  sub r1, r1, #64
  add r2, r2, #16
.L8594:
  ldr r4, [r0, #68]
  cmp r4, #0
  beq .L8595
  ands  r3, r4, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r2, #6]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r2, #4]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r2, #2]  @ movhi
  movs  r3, r4, lsr #24
  ldrne lr, [sp, #24]
  orrne r3, r3, lr
  strneh  r3, [r2, #0]  @ movhi
.L8595:
  ldr r4, [r1, #0]
  cmp r4, #0
  beq .L8604
  ands  r3, r4, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r2, #14] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r2, #12] @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r2, #10] @ movhi
  movs  r3, r4, lsr #24
  ldrne lr, [sp, #24]
  orrne r3, r3, lr
  strneh  r3, [r2, #8]  @ movhi
.L8604:
  add ip, ip, #1
  cmp r5, ip
  sub r0, r0, #64
  bne .L8651
  b .L7841
.L7995:
  cmp r5, #0
  beq .L7841
  ldr r7, [sp, #0]
  mov ip, #0
  add r2, r7, r6, asl #1
  b .L8025
.L8652:
  add r0, r0, #32
  add r2, r2, #16
.L8025:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L8026
  ands  r3, r4, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r2, #0]  @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne lr, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, lr
  strneh  r3, [r2, #2]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r2, #4]  @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r2, #6]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r2, #8]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne lr, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, lr
  strneh  r3, [r2, #10] @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r2, #12] @ movhi
  movs  r3, r4, lsr #28
  ldrne r7, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r2, #14] @ movhi
.L8026:
  add ip, ip, #1
  cmp r5, ip
  bne .L8652
  b .L7841
.L8330:
  cmp lr, #0
  beq .L7841
  ldr r3, [sp, #0]
  mov ip, #0
  add r2, r3, r6, asl #1
  ldr r3, .L8668+32
  add r0, r0, r3
  b .L8374
.L8653:
  add r1, r1, #64
  add r2, r2, #16
.L8374:
  ldr r4, [r1, #0]
  cmp r4, #0
  beq .L8375
  ands  r3, r4, #255
  ldrne r5, [sp, #24]
  orrne r3, r3, r5
  strneh  r3, [r2, #0]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r2, #2]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r2, #4]  @ movhi
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r2, #6]  @ movhi
.L8375:
  ldr r4, [r0, #-60]
  cmp r4, #0
  beq .L8384
  ands  r3, r4, #255
  ldrne r5, [sp, #24]
  orrne r3, r3, r5
  strneh  r3, [r2, #8]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r2, #10] @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r2, #12] @ movhi
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r2, #14] @ movhi
.L8384:
  add ip, ip, #1
  cmp lr, ip
  add r0, r0, #64
  bne .L8653
  b .L7841
.L8177:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  add r0, r1, r3, asl #6
  ldreq r1, [sp, #84]
  beq .L8281
  cmp r2, #3
  rsb lr, r2, #8
  bhi .L8654
  subs  r5, lr, #4
  ldr r1, [r0, #0]
  ldreq r1, [sp, #84]
  beq .L8294
  mov r3, r2, asl #3
  mov r2, r1, lsr r3
  mov ip, #0
.L8295:
  ands  r3, r2, #255
  ldr r1, [sp, #24]
  ldrne r6, [sp, #84]
  orr r3, r3, r1
  mov r1, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r1, r6]  @ movhi
  cmp ip, r5
  mov r2, r2, lsr #8
  bne .L8295
  ldr r7, [sp, #84]
  add r3, r7, lr, asl #1
  sub r1, r3, #8
.L8294:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L8300
  ands  r3, r2, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #24]
  orrne r3, r3, ip
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #24]
  orrne r3, r3, lr
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r1, #6]  @ movhi
.L8300:
  add r1, r1, #8
.L8286:
  add r0, r0, #64
.L8281:
  movs  lr, r4, lsr #3
  beq .L7841
  mov ip, #0
  b .L8310
.L8655:
  add r0, r0, #64
  add r1, r1, #16
.L8310:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L8311
  ands  r3, r2, #255
  ldrne r4, [sp, #24]
  orrne r3, r3, r4
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r5, [sp, #24]
  orrne r3, r3, r5
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r1, #6]  @ movhi
.L8311:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L8320
  ands  r3, r2, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #24]
  orrne r3, r3, r4
  strneh  r3, [r1, #10] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #24]
  orrne r3, r3, r5
  strneh  r3, [r1, #12] @ movhi
  movs  r3, r2, lsr #24
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r1, #14] @ movhi
.L8320:
  add ip, ip, #1
  cmp lr, ip
  bne .L8655
  b .L7841
.L8047:
  ands  r2, r4, #7
  mov r3, r4, lsr #3
  sub r0, r0, r3, asl #5
  ldreq r5, [sp, #84]
  beq .L8096
  rsbs  lr, r2, #8
  ldr r4, [r0, #0]
  ldreq r5, [sp, #84]
  beq .L8099
  mov r3, r2, asl #2
  mov r4, r4, asl r3
  mov r6, #0
.L8100:
  movs  r3, r4, lsr #28
  ldr r7, [sp, #24]
  ldrne r8, [sp, #84]
  orr r3, r1, r3
  mov r5, r6, asl #1
  orr r3, r3, r7
  add r6, r6, #1
  strneh  r3, [r5, r8]  @ movhi
  cmp lr, r6
  mov r4, r4, asl #4
  bne .L8100
  ldr r2, [sp, #84]
  add r5, r2, lr, asl #1
.L8099:
  sub r0, r0, #32
.L8096:
  movs  ip, ip, lsr #3
  beq .L7841
  mov r2, #0
  b .L8106
.L8656:
  sub r0, r0, #32
  add r5, r5, #16
.L8106:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L8107
  ands  r3, r4, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #14] @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r5, #12] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r5, #10] @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne lr, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, lr
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r4, lsr #28
  ldrne lr, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, lr
  strneh  r3, [r5, #0]  @ movhi
.L8107:
  add r2, r2, #1
  cmp r2, ip
  bne .L8656
  b .L7841
.L8397:
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub r2, r1, r3, asl #6
  ldreq r0, [sp, #84]
  beq .L8501
  cmp ip, #3
  rsb lr, ip, #8
  bhi .L8657
  subs  r5, lr, #4
  ldr r1, [r2, #4]
  ldreq r0, [sp, #84]
  beq .L8514
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov ip, #0
.L8515:
  movs  r3, r1, lsr #24
  ldr r0, [sp, #24]
  ldrne r6, [sp, #84]
  orr r3, r3, r0
  mov r0, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r0, r6]  @ movhi
  cmp r5, ip
  mov r1, r1, asl #8
  bne .L8515
  ldr r7, [sp, #84]
  add r3, r7, lr, asl #1
  sub r0, r3, #8
.L8514:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L8520
  ands  r3, r1, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #24]
  orrne r3, r3, ip
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #24]
  orrne r3, r3, lr
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r1, lsr #24
  ldrne r1, [sp, #24]
  orrne r3, r3, r1
  strneh  r3, [r0, #0]  @ movhi
.L8520:
  add r0, r0, #8
.L8506:
  sub r2, r2, #64
.L8501:
  movs  lr, r4, lsr #3
  beq .L7841
  mov ip, #0
  b .L8530
.L8658:
  sub r2, r2, #64
  add r0, r0, #16
.L8530:
  ldr r1, [r2, #4]
  cmp r1, #0
  beq .L8531
  ands  r3, r1, #255
  ldrne r4, [sp, #24]
  orrne r3, r3, r4
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r5, [sp, #24]
  orrne r3, r3, r5
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r1, lsr #24
  ldrne r7, [sp, #24]
  orrne r3, r3, r7
  strneh  r3, [r0, #0]  @ movhi
.L8531:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L8540
  ands  r3, r1, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r0, #14] @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #24]
  orrne r3, r3, r4
  strneh  r3, [r0, #12] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #24]
  orrne r3, r3, r5
  strneh  r3, [r0, #10] @ movhi
  movs  r3, r1, lsr #24
  ldrne r6, [sp, #24]
  orrne r3, r3, r6
  strneh  r3, [r0, #8]  @ movhi
.L8540:
  add ip, ip, #1
  cmp ip, lr
  bne .L8658
  b .L7841
.L7917:
  mov r3, r4, lsr #3
  mov r2, r3, asl #5
  ands  r3, r4, #7
  add lr, r0, r2
  ldreq ip, [sp, #84]
  beq .L7966
  rsbs  r4, r3, #8
  ldr r0, [r0, r2]
  ldreq ip, [sp, #84]
  beq .L7969
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  mov ip, #0
.L7970:
  ands  r3, r0, #15
  ldr r6, [sp, #24]
  ldrne r7, [sp, #84]
  orr r3, r1, r3
  mov r2, ip, asl #1
  orr r3, r3, r6
  add ip, ip, #1
  strneh  r3, [r2, r7]  @ movhi
  cmp ip, r4
  mov r0, r0, lsr #4
  bne .L7970
  ldr r8, [sp, #84]
  add ip, r8, r4, asl #1
.L7969:
  add lr, lr, #32
.L7966:
  movs  r4, r5, lsr #3
  beq .L7841
  mov r0, #0
  b .L7976
.L8659:
  add lr, lr, #32
  add ip, ip, #16
.L7976:
  ldr r2, [lr, #0]
  cmp r2, #0
  beq .L7977
  ands  r3, r2, #15
  ldrne r5, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r5
  strneh  r3, [ip, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [ip, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [ip, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r5, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r5
  strneh  r3, [ip, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [ip, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [ip, #12] @ movhi
  movs  r3, r2, lsr #28
  ldrne r8, [sp, #24]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #14] @ movhi
.L7977:
  add r0, r0, #1
  cmp r0, r4
  bne .L8659
  b .L7841
.L8179:
  ldr r0, [sp, #108]
  rsb lr, ip, #8
  cmp r0, lr
  blt .L8660
  cmp ip, #3
  bls .L8212
  cmp lr, #0
  ldr r2, [r6, #4]
  ldreq r4, [sp, #84]
  beq .L8216
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r0, #0
.L8217:
  ands  r3, r1, #255
  ldr r8, [sp, #24]
  ldrne ip, [sp, #84]
  mov r2, r0, asl #1
  orr r3, r3, r8
  add r0, r0, #1
  strneh  r3, [r2, ip]  @ movhi
  cmp lr, r0
  mov r1, r1, lsr #8
  bne .L8217
  ldr r0, [sp, #84]
  add r4, r0, lr, asl #1
.L8216:
  ldr r3, [sp, #108]
  add r6, r6, #64
  rsb r5, lr, r3
  b .L8181
.L8049:
  ldr r2, [sp, #108]
  rsb r6, lr, #8
  cmp r2, r6
  blt .L8661
  cmp r6, #0
  ldr r2, [r0, #0]
  ldreq r8, [sp, #84]
  beq .L8062
  mov r3, lr, asl #2
  mov lr, r2, asl r3
  mov r5, #0
.L8063:
  movs  r3, lr, lsr #28
  ldr r7, [sp, #24]
  ldrne r8, [sp, #84]
  orr r3, r1, r3
  mov r4, r5, asl #1
  orr r3, r3, r7
  add r5, r5, #1
  strneh  r3, [r4, r8]  @ movhi
  cmp r6, r5
  mov lr, lr, asl #4
  bne .L8063
  ldr ip, [sp, #84]
  add r8, ip, r6, asl #1
.L8062:
  ldr lr, [sp, #108]
  sub r0, r0, #32
  rsb r2, r6, lr
  b .L8051
.L7919:
  ldr r7, [sp, #108]
  rsb lr, r3, #8
  cmp r7, lr
  blt .L8662
  cmp lr, #0
  ldr r2, [r5, #0]
  ldreq r6, [sp, #84]
  beq .L7932
  mov r3, r3, asl #2
  mov r2, r2, lsr r3
  mov ip, #0
.L7933:
  ands  r3, r2, #15
  ldr r4, [sp, #24]
  ldrne r6, [sp, #84]
  orr r3, r1, r3
  mov r0, ip, asl #1
  orr r3, r3, r4
  add ip, ip, #1
  strneh  r3, [r0, r6]  @ movhi
  cmp lr, ip
  mov r2, r2, lsr #4
  bne .L7933
  ldr r7, [sp, #84]
  add r6, r7, lr, asl #1
.L7932:
  ldr r8, [sp, #108]
  add r5, r5, #32
  rsb r7, lr, r8
  b .L7921
.L8399:
  ldr r0, [sp, #108]
  rsb lr, ip, #8
  cmp r0, lr
  blt .L8663
  cmp ip, #3
  bls .L8432
  cmp lr, #0
  ldr r2, [r6, #0]
  ldreq r4, [sp, #84]
  beq .L8436
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r0, #0
.L8437:
  movs  r3, r2, lsr #24
  ldr r8, [sp, #24]
  ldrne ip, [sp, #84]
  mov r1, r0, asl #1
  orr r3, r3, r8
  add r0, r0, #1
  strneh  r3, [r1, ip]  @ movhi
  cmp lr, r0
  mov r2, r2, asl #8
  bne .L8437
  ldr r0, [sp, #84]
  add r4, r0, lr, asl #1
.L8436:
  ldr r3, [sp, #108]
  sub r6, r6, #64
  rsb r5, lr, r3
  b .L8401
.L8663:
  cmp r0, #0
  ble .L7841
  cmp ip, #3
  bls .L8405
  ldr r2, [r6, #0]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r0, #0
.L8408:
  movs  r3, r2, lsr #24
  ldr r1, [sp, #24]
  ldrne r4, [sp, #84]
  ldr r5, [sp, #108]
  orr r3, r3, r1
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r4]  @ movhi
  cmp r5, r0
  mov r2, r2, asl #8
  bne .L8408
  b .L7841
.L8662:
  cmp r7, #0
  ble .L7841
  ldr r2, [r0, r2]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  mov ip, #0
.L7926:
  ands  r3, r0, #15
  ldr r8, [sp, #24]
  ldrne lr, [sp, #84]
  orr r3, r1, r3
  mov r2, ip, asl #1
  orr r3, r3, r8
  strneh  r3, [r2, lr]  @ movhi
  ldr r2, [sp, #108]
  add ip, ip, #1
  cmp r2, ip
  mov r0, r0, lsr #4
  bne .L7926
  b .L7841
.L8661:
  cmp r2, #0
  ble .L7841
  ldr r2, [r0, #0]
  mov r3, lr, asl #2
  mov r0, r2, asl r3
  mov ip, #0
.L8056:
  movs  r3, r0, lsr #28
  ldr r4, [sp, #24]
  ldrne r5, [sp, #84]
  orr r3, r1, r3
  ldr r6, [sp, #108]
  mov r2, ip, asl #1
  orr r3, r3, r4
  add ip, ip, #1
  strneh  r3, [r2, r5]  @ movhi
  cmp r6, ip
  mov r0, r0, asl #4
  bne .L8056
  b .L7841
.L8657:
  cmp lr, #0
  ldr r1, [r2, #0]
  ldreq r0, [sp, #84]
  beq .L8506
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov ip, #0
.L8507:
  movs  r3, r1, lsr #24
  ldr r6, [sp, #24]
  ldrne r7, [sp, #84]
  mov r0, ip, asl #1
  orr r3, r3, r6
  add ip, ip, #1
  strneh  r3, [r0, r7]  @ movhi
  cmp ip, lr
  mov r1, r1, asl #8
  bne .L8507
  ldr r8, [sp, #84]
  sub r2, r2, #64
  add r0, r8, lr, asl #1
  b .L8501
.L8654:
  cmp lr, #0
  ldr r1, [r0, #4]
  ldreq r1, [sp, #84]
  beq .L8286
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r2, r1, lsr r3
  mov ip, #0
.L8287:
  ands  r3, r2, #255
  ldr r6, [sp, #24]
  ldrne r7, [sp, #84]
  mov r1, ip, asl #1
  orr r3, r3, r6
  add ip, ip, #1
  strneh  r3, [r1, r7]  @ movhi
  cmp ip, lr
  mov r2, r2, lsr #8
  bne .L8287
  ldr r8, [sp, #84]
  add r0, r0, #64
  add r1, r8, lr, asl #1
  b .L8281
.L8660:
  cmp r0, #0
  ble .L7841
  cmp ip, #3
  bls .L8185
  ldr r2, [r6, #4]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r0, #0
.L8188:
  ands  r3, r1, #255
  ldr r2, [sp, #24]
  ldrne r4, [sp, #84]
  ldr r5, [sp, #108]
  orr r3, r3, r2
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r5, r0
  mov r1, r1, lsr #8
  bne .L8188
  b .L7841
.L8667:
  mov r6, #0
  b .L7899
.L8432:
  subs  r4, lr, #4
  ldr r2, [r6, #4]
  ldreq r1, [sp, #84]
  beq .L8444
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r0, #0
.L8445:
  movs  r3, r2, lsr #24
  ldr r1, [sp, #24]
  ldrne r5, [sp, #84]
  orr r3, r3, r1
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r5]  @ movhi
  cmp r4, r0
  mov r2, r2, asl #8
  bne .L8445
  ldr r7, [sp, #84]
  add r3, r7, lr, asl #1
  sub r1, r3, #8
.L8444:
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L8450
  ands  r3, r2, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #24]
  orrne r3, r3, ip
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r0, [sp, #24]
  orrne r3, r3, r0
  strneh  r3, [r1, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r1, #0]  @ movhi
.L8450:
  add r4, r1, #8
  b .L8436
.L8212:
  subs  r4, lr, #4
  ldr r2, [r6, #0]
  ldreq r1, [sp, #84]
  beq .L8224
  mov r3, ip, asl #3
  mov r1, r2, lsr r3
  mov r0, #0
.L8225:
  ands  r3, r1, #255
  ldr r2, [sp, #24]
  ldrne r5, [sp, #84]
  orr r3, r3, r2
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r5]  @ movhi
  cmp r0, r4
  mov r1, r1, lsr #8
  bne .L8225
  ldr r7, [sp, #84]
  add r3, r7, lr, asl #1
  sub r1, r3, #8
.L8224:
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L8230
  ands  r3, r2, #255
  ldrne r8, [sp, #24]
  orrne r3, r3, r8
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #24]
  orrne r3, r3, ip
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r0, [sp, #24]
  orrne r3, r3, r0
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #24]
  orrne r3, r3, r2
  strneh  r3, [r1, #6]  @ movhi
.L8230:
  add r4, r1, #8
  b .L8216
.L8665:
  ldr r5, [sp, #16]
  b .L8630
.L8664:
  mov ip, fp
  b .L8628
.L8405:
  ldr r7, [sp, #108]
  mov r3, ip, asl #3
  ldr r1, [r6, #4]
  add r2, r7, ip
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L8412
  cmp r7, #0
  movne r0, #0
  beq .L7841
.L8428:
  movs  r3, r1, lsr #24
  ldr r5, [sp, #24]
  ldrne r6, [sp, #84]
  ldr r7, [sp, #108]
  mov r2, r0, asl #1
  orr r3, r3, r5
  add r0, r0, #1
  strneh  r3, [r2, r6]  @ movhi
  cmp r7, r0
  mov r1, r1, asl #8
  bne .L8428
  b .L7841
.L8185:
  ldr r7, [sp, #108]
  ldr r3, [r6, #0]
  add r2, r7, ip
  cmp r2, #4
  mov r1, ip, asl #3
  mov r2, r3, lsr r1
  bhi .L8192
  cmp r7, #0
  movne r0, #0
  beq .L7841
.L8208:
  ands  r3, r2, #255
  ldr r5, [sp, #24]
  ldrne r6, [sp, #84]
  ldr r7, [sp, #108]
  mov r1, r0, asl #1
  orr r3, r3, r5
  add r0, r0, #1
  strneh  r3, [r1, r6]  @ movhi
  cmp r7, r0
  mov r2, r2, lsr #8
  bne .L8208
  b .L7841
.L8412:
  rsbs  ip, ip, #4
  ldreq lr, [sp, #84]
  beq .L8417
  mov r0, #0
.L8418:
  movs  r3, r1, lsr #24
  ldr r8, [sp, #24]
  ldrne lr, [sp, #84]
  mov r2, r0, asl #1
  orr r3, r3, r8
  add r0, r0, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r0, ip
  mov r1, r1, asl #8
  bne .L8418
  ldr r0, [sp, #84]
  add lr, r0, ip, asl #1
.L8417:
  ldr r1, [sp, #108]
  ldr r2, [r6, #0]
  subs  ip, r1, ip
  beq .L7841
  mov r0, #0
.L8424:
  ldr r4, [sp, #24]
  movs  r3, r2, lsr #24
  mov r1, r0, asl #1
  orr r3, r3, r4
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r0, ip
  mov r2, r2, asl #8
  bne .L8424
  b .L7841
.L8192:
  rsbs  ip, ip, #4
  ldreq lr, [sp, #84]
  beq .L8197
  mov r0, #0
.L8198:
  ands  r3, r2, #255
  ldr r8, [sp, #24]
  ldrne lr, [sp, #84]
  mov r1, r0, asl #1
  orr r3, r3, r8
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r0, ip
  mov r2, r2, lsr #8
  bne .L8198
  ldr r0, [sp, #84]
  add lr, r0, ip, asl #1
.L8197:
  ldr r1, [sp, #108]
  ldr r2, [r6, #4]
  subs  ip, r1, ip
  beq .L7841
  mov r0, #0
.L8204:
  ldr r4, [sp, #24]
  ands  r3, r2, #255
  mov r1, r0, asl #1
  orr r3, r3, r4
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r0, ip
  mov r2, r2, lsr #8
  bne .L8204
  b .L7841
  .size render_scanline_obj_color16_1D, .-render_scanline_obj_color16_1D
  .align  2
  .global render_scanline_obj_color16_2D
  .type render_scanline_obj_color16_2D, %function
render_scanline_obj_color16_2D:
  @ args = 0, pretend = 0, frame = 96
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr ip, .L9512
  sub sp, sp, #96
  ldrh  r4, [ip, #6]
  add r0, r0, r0, asl #2
  str r4, [sp, #36]
  ldr r5, [sp, #36]
  ldrh  r4, [ip, #80]
  ldr ip, .L9512+4
  add r0, r5, r0, asl #5
  ldr ip, [ip, r0, asl #2]
  mov lr, r4, lsr #11
  and lr, lr, #2
  mov r4, r4, asl #27
  str ip, [sp, #40]
  orr lr, lr, r4, lsr #31
  cmp ip, #0
  ldr ip, .L9512+8
  mov lr, lr, asl #9
  add r0, ip, r0, asl #7
  orr lr, lr, #256
  str r0, [sp, #44]
  str r1, [sp, #12]
  str r2, [sp, #8]
  str r3, [sp, #4]
  str lr, [sp, #28]
  beq .L9458
  mov r8, #0
  add r6, r3, r1, asl #1
  rsb r7, r1, r2
  str r6, [sp, #68]
  str r7, [sp, #92]
  str r8, [sp, #32]
  mov ip, r8
.L8673:
  ldr lr, [sp, #44]
  ldr r0, .L9512+12
  ldrb  r3, [ip, lr]  @ zero_extendqisi2
  mov r3, r3, asl #3
  ldrh  r4, [r3, r0]
  add r3, r3, r0
  ldrh  r1, [r3, #2]
  mov r5, r4, lsr #12
  and r2, r5, #12
  orr r0, r2, r1, lsr #14
  and ip, r4, #255
  mov r2, r1, asl #23
  cmp ip, #160
  ldrh  lr, [r3, #4]
  mov r6, r2, asr #23
  ldr r3, .L9512+16
  ldr r2, .L9512+20
  subgt ip, ip, #256
  tst r4, #256
  ldr r8, [r2, r0, asl #2]
  ldr sl, [r3, r0, asl #2]
  beq .L8676
  tst r4, #8192
  beq .L8678
  tst r4, #512
  mov r3, r1, lsr #4
  ldr r4, .L9512+12
  and r3, r3, #992
  add r3, r3, r4
  add r2, r8, r8, lsr #31
  ldrh  r5, [r3, #30]
  mov r4, r2, asr #1
  add r1, sl, sl, lsr #31
  ldr r2, [sp, #12]
  movne r0, r4, asl #1
  str r5, [sp, #16]
  mov r5, r1, asr #1
  strne r0, [sp, #52]
  moveq r9, r8
  streq r4, [sp, #52]
  moveq r0, r5
  movne r9, r8, asl #1
  movne r0, r5, asl #1
  cmp r6, r2
  ldrh  r7, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  fp, [r3, #22]
  bge .L8683
  rsb r2, r6, r2
  rsb r9, r2, r9
  cmp r9, #0
  ble .L8685
  ldr r3, [sp, #52]
  ldr r6, [sp, #12]
  rsb r3, r2, r3
  str r3, [sp, #52]
.L8683:
  ldr r2, [sp, #8]
  add r3, r6, r9
  cmp r3, r2
  blt .L8687
  rsb r9, r6, r2
  cmp r9, #0
  ble .L8685
.L8687:
  mov r3, r7, asl #16
  mov r2, r1, asl #16
  ldr r7, [sp, #16]
  mov r3, r3, asr #16
  add r0, ip, r0
  str r3, [sp, #48]
  mov ip, r2, asr #16
  ldr r3, [sp, #36]
  ldr r2, [sp, #4]
  mov r1, r7, asl #16
  mov r4, r4, asl #8
  cmp fp, #0
  str r4, [sp, #76]
  mov r1, r1, asr #16
  mov r4, r5, asl #8
  add r7, r2, r6, asl #1
  rsb r0, r0, r3
  bne .L8689
  mla r3, r0, r1, r4
  mov r1, r3, asr #8
  cmp r1, sl
  bcs .L8685
  mov r3, lr, asl #22
  mov r2, r1, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #2
  ldr r3, .L9512+24
  cmp r9, #0
  add lr, r3, r1, asl #3
  ble .L8685
  ldr r4, [sp, #48]
  ldr r2, [sp, #52]
  mul r3, r0, ip
  mul r2, r4, r2
  ldr r5, [sp, #76]
  rsb r3, r2, r3
  add r0, r5, r3
  mov r4, r0, asr #8
  cmp r4, r8
  movcs ip, fp
  bcs .L8695
  b .L9508
.L8696:
  cmp r4, r8
  bcc .L9472
.L8695:
  ldr r6, [sp, #48]
  add ip, ip, #1
  add r0, r0, r6
  cmp r9, ip
  mov r4, r0, asr #8
  add r7, r7, #2
  bne .L8696
.L8685:
  ldr ip, [sp, #32]
  ldr lr, [sp, #40]
  add ip, ip, #1
  cmp ip, lr
  str ip, [sp, #32]
  beq .L9458
.L9490:
  ldr ip, [sp, #32]
  b .L8673
.L8676:
  ldr r2, [sp, #36]
  tst r1, #8192
  rsb r0, ip, r2
  rsbne r3, r0, sl
  subne r0, r3, #1
  mov r2, r1, asl #19
  and r3, r5, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L8685
  .p2align 2
.L8757:
  .word .L8753
  .word .L8754
  .word .L8755
  .word .L8756
.L8753:
  mov r3, lr, asl #22
  mov r2, r0, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r0, #7
  add r1, r1, r3, asl #3
  ldr r3, [sp, #12]
  mov r2, lr, lsr #8
  cmp r6, r3
  ldr r3, .L9512+24
  add r0, r3, r1, asl #2
  and r1, r2, #240
  blt .L9485
  ldr ip, [sp, #8]
  add r3, r6, r8
  cmp ip, r3
  bhi .L8839
  rsb r8, r6, ip
  cmp r8, #0
  ble .L8685
  ldr lr, [sp, #4]
  movs  r7, r8, lsr #3
  add r2, lr, r6, asl #1
  beq .L8842
  mov r5, r2
  mov lr, r0
  mov ip, #0
.L8844:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L8845
  ands  r3, r4, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #0]  @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #2]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #10] @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #12] @ movhi
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r4
  strneh  r3, [r5, #14] @ movhi
.L8845:
  add ip, ip, #1
  cmp ip, r7
  add lr, lr, #32
  add r5, r5, #16
  bne .L8844
  add r0, r0, r7, asl #5
  add r2, r2, r7, asl #4
.L8842:
  ands  lr, r8, #7
  beq .L8685
  ldr r0, [r0, #0]
  mov r4, #0
.L8864:
  ands  r3, r0, #15
  ldr r5, [sp, #28]
  orr r3, r1, r3
  mov ip, r4, asl #1
  orr r3, r3, r5
  add r4, r4, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp r4, lr
  mov r0, r0, lsr #4
  bne .L8864
  b .L8685
.L8754:
  mov r3, lr, asl #22
  mov r1, r0, lsr #3
  subs  r2, r8, #8
  mov r3, r3, lsr #22
  submi r2, r8, #1
  add r3, r3, r1, asl #5
  add r3, r3, r2, asr #3
  and r1, r0, #7
  ldr ip, [sp, #12]
  add r1, r1, r3, asl #3
  ldr r3, .L9512+24
  mov r2, lr, lsr #8
  cmp r6, ip
  add r0, r3, r1, asl #2
  and r1, r2, #240
  blt .L9486
  ldr r2, [sp, #8]
  add r3, r6, r8
  cmp r2, r3
  bhi .L8969
  rsb r8, r6, r2
  cmp r8, #0
  ble .L8685
  ldr r3, [sp, #4]
  movs  r7, r8, lsr #3
  add r2, r3, r6, asl #1
  beq .L8972
  mov r5, r2
  mov lr, r0
  mov ip, #0
.L8974:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L8975
  ands  r3, r4, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #14] @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #12] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #10] @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r4
  strneh  r3, [r5, #0]  @ movhi
.L8975:
  add ip, ip, #1
  cmp ip, r7
  sub lr, lr, #32
  add r5, r5, #16
  bne .L8974
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add r2, r2, r7, asl #4
.L8972:
  ands  lr, r8, #7
  beq .L8685
  ldr r0, [r0, #0]
  mov r4, #0
.L8994:
  movs  r3, r0, lsr #28
  ldr r5, [sp, #28]
  orr r3, r1, r3
  mov ip, r4, asl #1
  orr r3, r3, r5
  add r4, r4, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp r4, lr
  mov r0, r0, asl #4
  bne .L8994
  b .L8685
.L8755:
  mov r2, lr, asl #22
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  and r3, r0, #7
  add r2, r2, r1, asl #5
  add r3, r3, r2, asl #2
  ldr ip, [sp, #12]
  mov r0, r3, asl #3
  ldr r3, .L9512+24
  cmp r6, ip
  add ip, r0, r3
  blt .L9487
  ldr r7, [sp, #8]
  add r3, r6, r8
  cmp r7, r3
  bhi .L9174
  rsb r8, r6, r7
  cmp r8, #0
  ble .L8685
  ldr lr, [sp, #4]
  movs  r7, r8, lsr #3
  add r2, lr, r6, asl #1
  beq .L9177
  ldr r3, .L9512+32
  mov r5, r2
  add r0, r0, r3
  mov lr, ip
  mov r1, #0
.L9179:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L9180
  ands  r3, r4, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r5, #0]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r5, #2]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r5, #4]  @ movhi
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #28]
  orrne r3, r3, r4
  strneh  r3, [r5, #6]  @ movhi
.L9180:
  ldr r4, [r0, #-60]
  cmp r4, #0
  beq .L9189
  ands  r3, r4, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r5, #10] @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r5, #12] @ movhi
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #28]
  orrne r3, r3, r4
  strneh  r3, [r5, #14] @ movhi
.L9189:
  add r1, r1, #1
  cmp r7, r1
  add lr, lr, #64
  add r5, r5, #16
  add r0, r0, #64
  bne .L9179
  add ip, ip, r7, asl #6
  add r2, r2, r7, asl #4
.L9177:
  ands  lr, r8, #7
  beq .L8685
  cmp lr, #3
  ldrls r0, [ip, #0]
  bls .L9212
  ldr r1, [ip, #0]
  cmp r1, #0
  beq .L9202
  ands  r3, r1, #255
  ldrne r5, [sp, #28]
  orrne r3, r3, r5
  strneh  r3, [r2, #0]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r2, #2]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r2, #4]  @ movhi
  movs  r3, r1, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r2, #6]  @ movhi
.L9202:
  subs  lr, lr, #4
  ldr r0, [ip, #4]
  addne r2, r2, #8
  beq .L8685
.L9212:
  mov r1, #0
.L9213:
  ldr ip, [sp, #28]
  ands  r3, r0, #255
  orr r3, r3, ip
  mov ip, r1, asl #1
  add r1, r1, #1
  strneh  r3, [ip, r2]  @ movhi
  cmp lr, r1
  mov r0, r0, lsr #8
  bhi .L9213
  b .L8685
.L8756:
  subs  r2, r8, #8
  submi r2, r8, #1
  mov r3, r0, lsr #3
  mov r2, r2, asr #3
  mov r1, lr, asl #22
  add r2, r2, r3, asl #4
  mov r1, r1, lsr #22
  and r3, r0, #7
  add r1, r1, r2, asl #1
  add r3, r3, r1, asl #2
  ldr ip, [sp, #12]
  mov r0, r3, asl #3
  ldr r3, .L9512+24
  cmp r6, ip
  add ip, r0, r3
  blt .L9488
  ldr r7, [sp, #8]
  add r3, r6, r8
  cmp r3, r7
  bcc .L9394
  rsb r8, r6, r7
  cmp r8, #0
  ble .L8685
  ldr lr, [sp, #4]
  movs  r7, r8, lsr #3
  add r6, lr, r6, asl #1
  beq .L9397
  ldr r3, .L9512+28
  mov r5, r6
  add r0, r0, r3
  mov lr, ip
  mov r1, #0
.L9399:
  ldr r4, [r0, #68]
  cmp r4, #0
  beq .L9400
  ands  r3, r4, #255
  ldrne r2, [sp, #28]
  orrne r3, r3, r2
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r3, r2
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r3, r2
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #28]
  orrne r3, r3, r4
  strneh  r3, [r5, #0]  @ movhi
.L9400:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L9409
  ands  r3, r4, #255
  ldrne r2, [sp, #28]
  orrne r3, r3, r2
  strneh  r3, [r5, #14] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r3, r2
  strneh  r3, [r5, #12] @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r3, r2
  strneh  r3, [r5, #10] @ movhi
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #28]
  orrne r3, r3, r4
  strneh  r3, [r5, #8]  @ movhi
.L9409:
  add r1, r1, #1
  cmp r1, r7
  sub lr, lr, #64
  add r5, r5, #16
  sub r0, r0, #64
  bne .L9399
  rsb r3, r7, r7, asl #26
  add ip, ip, r3, asl #6
  add r6, r6, r7, asl #4
.L9397:
  ands  lr, r8, #7
  beq .L8685
  cmp lr, #3
  ldrls r2, [ip, #4]
  bls .L9432
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L9422
  ands  r3, r2, #255
  ldrne r5, [sp, #28]
  orrne r3, r3, r5
  strneh  r3, [r6, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r6, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r6, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r0, [sp, #28]
  orrne r3, r3, r0
  strneh  r3, [r6, #0]  @ movhi
.L9422:
  subs  lr, lr, #4
  ldr r2, [ip, #0]
  addne r6, r6, #8
  beq .L8685
.L9432:
  mov r1, #0
.L9433:
  ldr r4, [sp, #28]
  movs  r3, r2, lsr #24
  mov r0, r1, asl #1
  orr r3, r3, r4
  add r1, r1, #1
  strneh  r3, [r0, r6]  @ movhi
  cmp lr, r1
  mov r2, r2, asl #8
  bhi .L9433
  b .L8685
.L8678:
  tst r4, #512
  mov r3, r1, lsr #4
  ldr r4, .L9512+12
  and r3, r3, #992
  add r3, r3, r4
  ldrh  r5, [r3, #30]
  add r2, r8, r8, lsr #31
  mov r4, r2, asr #1
  add r1, sl, sl, lsr #31
  ldr r2, [sp, #12]
  str r5, [sp, #24]
  ldrh  r7, [r3, #6]
  mov r5, r1, asr #1
  ldrh  r1, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq fp, r8
  moveq r9, r4
  moveq r0, r5
  movne fp, r8, asl #1
  movne r9, r4, asl #1
  movne r0, r5, asl #1
  cmp r6, r2
  str r3, [sp, #20]
  bge .L8716
  rsb r2, r6, r2
  rsb fp, r2, fp
  cmp fp, #0
  ble .L8685
  ldr r6, [sp, #12]
  rsb r9, r2, r9
.L8716:
  ldr r2, [sp, #8]
  add r3, r6, fp
  cmp r3, r2
  blt .L8719
  rsb fp, r6, r2
  cmp fp, #0
  ble .L8685
.L8719:
  add ip, ip, r0
  mov r3, r7, asl #16
  mov r2, r1, asl #16
  ldr r0, [sp, #20]
  ldr r7, [sp, #24]
  mov r3, r3, asr #16
  mov r2, r2, asr #16
  cmp r0, #0
  str r3, [sp, #56]
  mov r0, lr, lsr #8
  str r2, [sp, #60]
  ldr r3, [sp, #36]
  ldr r2, [sp, #4]
  mov r1, r7, asl #16
  mov r4, r4, asl #8
  and r0, r0, #240
  str r4, [sp, #72]
  mov r1, r1, asr #16
  mov r4, r5, asl #8
  add r7, r2, r6, asl #1
  rsb ip, ip, r3
  str r0, [sp, #88]
  bne .L8721
  mla r3, ip, r1, r4
  mov r1, r3, asr #8
  cmp r1, sl
  bcs .L8685
  mov r3, lr, asl #22
  mov r2, r1, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #3
  ldr r3, .L9512+24
  cmp fp, #0
  add r1, r3, r1, asl #2
  ble .L8685
  ldr r3, [sp, #60]
  ldr r2, [sp, #56]
  mul r3, ip, r3
  mul r2, r9, r2
  ldr r4, [sp, #72]
  rsb r3, r2, r3
  add r0, r4, r3
  mov r4, r0, asr #8
  cmp r4, r8
  ldrcs r5, [sp, #20]
  bcs .L8727
  b .L9509
.L8728:
  cmp r4, r8
  bcc .L9474
.L8727:
  ldr r6, [sp, #56]
  add r5, r5, #1
  add r0, r0, r6
  cmp fp, r5
  mov r4, r0, asr #8
  add r7, r7, #2
  bne .L8728
  ldr ip, [sp, #32]
  ldr lr, [sp, #40]
  add ip, ip, #1
  cmp ip, lr
  str ip, [sp, #32]
  bne .L9490
.L9458:
  add sp, sp, #96
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L8689:
  mov r3, lr, asl #22
  ldr r2, .L9512+24
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  cmp r9, #0
  str r3, [sp, #84]
  ble .L8685
  mov r3, fp, asl #16
  mul r2, r0, r1
  mov fp, r3, asr #16
  ldr r5, [sp, #48]
  mul r3, r0, ip
  ldr r1, [sp, #52]
  ldr r0, [sp, #52]
  mul r1, fp, r1
  mul r0, r5, r0
  ldr r6, [sp, #76]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r5, r6, r3
  add lr, r4, r2
  mov ip, r5, asr #8
  mov r4, lr, asr #8
  cmp ip, r8
  cmpcc r4, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L8705
  b .L9510
.L8706:
  cmp ip, r8
  cmpcc r4, sl
  bcc .L8707
.L8705:
  ldr ip, [sp, #48]
  add r6, r6, #1
  add r5, r5, ip
  add lr, lr, fp
  cmp r9, r6
  mov ip, r5, asr #8
  mov r4, lr, asr #8
  add r7, r7, #2
  bne .L8706
  b .L8685
.L8721:
  mov r3, lr, asl #22
  ldr r2, .L9512+24
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  cmp fp, #0
  str r3, [sp, #80]
  ble .L8685
  ldr r5, [sp, #20]
  mul r2, ip, r1
  mov r3, r5, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #64]
  ldr r1, [sp, #64]
  ldr r3, [sp, #60]
  ldr r0, [sp, #56]
  mul r3, ip, r3
  mul r1, r9, r1
  mul r0, r9, r0
  ldr r6, [sp, #72]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add lr, r6, r3
  add r5, r4, r2
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  cmp ip, r8
  cmpcc r4, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L8740
  b .L9511
.L8741:
  cmp ip, r8
  cmpcc r4, sl
  bcc .L8743
.L8740:
  ldr ip, [sp, #56]
  ldr r0, [sp, #64]
  add r6, r6, #1
  add lr, lr, ip
  add r5, r5, r0
  cmp fp, r6
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  add r7, r7, #2
  bne .L8741
  b .L8685
.L9493:
  mov r3, ip, asr #1
  ldr r1, [sp, #80]
  and r3, r3, #3
  and r0, r4, #7
  str r3, [sp, #0]
  ldr r3, [sp, #80]
  add r0, r1, r0, asl #2
  and r1, r4, #7
  mov r2, ip, asr #1
  add r1, r3, r1, asl #2
  mov r3, r4, asr #3
  and r9, r2, #3
  mov r3, r3, asl #10
  mov r2, ip, asr #3
  tst ip, #1
  add r3, r3, r2, asl #5
  add r2, r0, r3
  movne r4, r9
  add r0, r1, r3
  ldreqb  r3, [r0, r9]  @ zero_extendqisi2
  ldrneb  r3, [r2, r4]  @ zero_extendqisi2
  ldr r2, [sp, #88]
  movne r0, r3, lsr #4
  andeq r0, r3, #15
  cmp r0, #0
  orr r3, r0, r2
  ldr r0, [sp, #28]
  ldr ip, [sp, #56]
  ldr r1, [sp, #64]
  add r6, r6, #1
  orr r3, r3, r0
  strneh  r3, [r7, #0]  @ movhi
  add lr, lr, ip
  add r5, r5, r1
  cmp fp, r6
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  add r7, r7, #2
  ble .L8685
.L8743:
  cmp r4, sl
  cmpcc ip, r8
  bcc .L9493
  b .L8685
.L8730:
  cmp r4, r8
  bcs .L8685
.L9474:
  mov r3, r4, asr #1
  and sl, r3, #3
  mov r3, r4, asr #3
  mov r3, r3, asl #5
  mov r2, r4, asr #1
  tst r4, #1
  add ip, r3, r1
  and r6, r2, #3
  add r2, r3, r1
  ldreqb  r3, [r2, r6]  @ zero_extendqisi2
  ldrneb  r3, [ip, sl]  @ zero_extendqisi2
  ldr lr, [sp, #88]
  movne r2, r3, lsr #4
  andeq r2, r3, #15
  cmp r2, #0
  orr r3, r2, lr
  ldr r2, [sp, #28]
  ldr ip, [sp, #56]
  add r5, r5, #1
  orr r3, r3, r2
  strneh  r3, [r7, #0]  @ movhi
  add r0, r0, ip
  cmp fp, r5
  mov r4, r0, asr #8
  add r7, r7, #2
  bgt .L8730
  b .L8685
.L8698:
  cmp r4, r8
  bcs .L8685
.L9472:
  ldr r1, [sp, #48]
  mov r3, r4, asr #3
  add r0, r0, r1
  add r3, lr, r3, asl #6
  and r1, r4, #7
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  ldr r3, [sp, #28]
  cmp r2, #0
  add ip, ip, #1
  orr r2, r2, r3
  strneh  r2, [r7, #0]  @ movhi
  cmp r9, ip
  mov r4, r0, asr #8
  add r7, r7, #2
  bgt .L8698
  b .L8685
.L9488:
  ldr lr, [sp, #12]
  rsb r1, r6, lr
  rsb r4, r1, r8
  cmp r4, #0
  ble .L8685
  ldr r0, [sp, #8]
  add r3, r6, r8
  cmp r0, r3
  bhi .L9241
  mov r3, r1, lsr #3
  ands  r0, r1, #7
  sub r6, ip, r3, asl #6
  bne .L9243
  ldr r5, [sp, #92]
  ldr r4, [sp, #68]
.L9245:
  movs  lr, r5, lsr #3
  beq .L9303
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L9305:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L9306
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #0]  @ movhi
.L9306:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L9315
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #12] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #10] @ movhi
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #8]  @ movhi
.L9315:
  add ip, ip, #1
  cmp ip, lr
  sub r0, r0, #64
  add r1, r1, #16
  bne .L9305
  rsb r3, lr, lr, asl #26
  add r6, r6, r3, asl #6
  add r4, r4, lr, asl #4
.L9303:
  ands  ip, r5, #7
  beq .L8685
  cmp ip, #3
  ldrls r2, [r6, #4]
  bls .L9338
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L9328
  ands  r3, r2, #255
  ldrne lr, [sp, #28]
  orrne r3, r3, lr
  strneh  r3, [r4, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r0, [sp, #28]
  orrne r3, r3, r0
  strneh  r3, [r4, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #28]
  orrne r3, r3, r1
  strneh  r3, [r4, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r3, r2
  strneh  r3, [r4, #0]  @ movhi
.L9328:
  subs  ip, ip, #4
  ldr r2, [r6, #0]
  addne r4, r4, #8
  beq .L8685
.L9338:
  mov r1, #0
.L9339:
  ldr r5, [sp, #28]
  movs  r3, r2, lsr #24
  mov r0, r1, asl #1
  orr r3, r3, r5
  add r1, r1, #1
  strneh  r3, [r0, r4]  @ movhi
  cmp ip, r1
  mov r2, r2, asl #8
  bhi .L9339
  b .L8685
.L9513:
  .align  2
.L9512:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word oam_ram
  .word obj_height_table
  .word obj_width_table
  .word vram+65536
  .word vram+65472
  .word vram+65600
.L9487:
  ldr lr, [sp, #12]
  rsb r1, r6, lr
  rsb r4, r1, r8
  cmp r4, #0
  ble .L8685
  ldr r0, [sp, #8]
  add r3, r6, r8
  cmp r0, r3
  bhi .L9021
  mov r3, r1, lsr #3
  ands  r0, r1, #7
  add r6, ip, r3, asl #6
  bne .L9023
  ldr r5, [sp, #92]
  ldr r4, [sp, #68]
.L9025:
  movs  lr, r5, lsr #3
  beq .L9083
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L9085:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L9086
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #6]  @ movhi
.L9086:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L9095
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #10] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #12] @ movhi
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #14] @ movhi
.L9095:
  add ip, ip, #1
  cmp lr, ip
  add r0, r0, #64
  add r1, r1, #16
  bne .L9085
  add r6, r6, lr, asl #6
  add r4, r4, lr, asl #4
.L9083:
  ands  ip, r5, #7
  beq .L8685
  cmp ip, #3
  ldrls r1, [r6, #0]
  bls .L9118
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L9108
  ands  r3, r2, #255
  ldrne lr, [sp, #28]
  orrne r3, r3, lr
  strneh  r3, [r4, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r0, [sp, #28]
  orrne r3, r3, r0
  strneh  r3, [r4, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #28]
  orrne r3, r3, r1
  strneh  r3, [r4, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r3, r2
  strneh  r3, [r4, #6]  @ movhi
.L9108:
  subs  ip, ip, #4
  ldr r1, [r6, #4]
  addne r4, r4, #8
  beq .L8685
.L9118:
  mov r2, #0
.L9119:
  ldr r5, [sp, #28]
  ands  r3, r1, #255
  mov r0, r2, asl #1
  orr r3, r3, r5
  add r2, r2, #1
  strneh  r3, [r0, r4]  @ movhi
  cmp ip, r2
  mov r1, r1, lsr #8
  bhi .L9119
  b .L8685
.L9486:
  rsb r4, r6, ip
  rsb ip, r4, r8
  cmp ip, #0
  ble .L8685
  ldr lr, [sp, #8]
  add r3, r6, r8
  cmp lr, r3
  bhi .L8891
  mov r3, r4, lsr #3
  ands  lr, r4, #7
  sub r0, r0, r3, asl #5
  bne .L8893
  ldr r2, [sp, #92]
  ldr r8, [sp, #68]
.L8895:
  movs  r7, r2, lsr #3
  beq .L8912
  mov r5, r8
  mov lr, r0
  mov r6, #0
.L8914:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L8915
  ands  r3, r4, #15
  ldrne ip, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #14] @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #12] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #10] @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, ip
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r4
  strneh  r3, [r5, #0]  @ movhi
.L8915:
  add r6, r6, #1
  cmp r6, r7
  sub lr, lr, #32
  add r5, r5, #16
  bne .L8914
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add r8, r8, r7, asl #4
.L8912:
  ands  lr, r2, #7
  beq .L8685
  ldr r0, [r0, #0]
  mov ip, #0
.L8934:
  movs  r3, r0, lsr #28
  ldr r5, [sp, #28]
  orr r3, r1, r3
  mov r2, ip, asl #1
  orr r3, r3, r5
  add ip, ip, #1
  strneh  r3, [r2, r8]  @ movhi
  cmp ip, lr
  mov r0, r0, asl #4
  bne .L8934
  b .L8685
.L9485:
  ldr r5, [sp, #12]
  rsb r4, r6, r5
  rsb r5, r4, r8
  cmp r5, #0
  ble .L8685
  add r3, r6, r8
  ldr r6, [sp, #8]
  cmp r6, r3
  bhi .L8761
  mov r3, r4, lsr #3
  mov r2, r3, asl #5
  ands  r3, r4, #7
  add r5, r0, r2
  bne .L8763
  ldr r7, [sp, #92]
  ldr r6, [sp, #68]
.L8765:
  movs  r4, r7, lsr #3
  beq .L8782
  mov ip, r6
  mov r0, r5
  mov lr, #0
.L8784:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L8785
  ands  r3, r2, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #12] @ movhi
  movs  r3, r2, lsr #28
  ldrne r2, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r2
  strneh  r3, [ip, #14] @ movhi
.L8785:
  add lr, lr, #1
  cmp r4, lr
  add r0, r0, #32
  add ip, ip, #16
  bne .L8784
  add r5, r5, r4, asl #5
  add r6, r6, r4, asl #4
.L8782:
  ands  lr, r7, #7
  beq .L8685
  ldr r2, [r5, #0]
  mov r0, #0
.L8804:
  ands  r3, r2, #15
  ldr r4, [sp, #28]
  orr r3, r1, r3
  mov ip, r0, asl #1
  orr r3, r3, r4
  add r0, r0, #1
  strneh  r3, [ip, r6]  @ movhi
  cmp r0, lr
  mov r2, r2, lsr #4
  bne .L8804
  b .L8685
.L9510:
  mov r6, #0
.L8707:
  cmp r4, sl
  movcc r3, #0
  movcs r3, #1
  cmp r8, ip
  orrls r3, r3, #1
  cmp r3, #0
  beq .L9473
  b .L8685
.L8708:
  cmp r4, sl
  cmpcc ip, r8
  bcs .L8685
.L9473:
  and r3, r4, #7
  mov r2, ip, asr #3
  mov r3, r3, asl #3
  mov r1, r4, asr #3
  add r3, r3, r2, asl #6
  ldr r0, [sp, #48]
  add r3, r3, r1, asl #10
  ldr r1, [sp, #84]
  add r5, r5, r0
  add r3, r3, r1
  and r0, ip, #7
  ldrb  r2, [r3, r0]  @ zero_extendqisi2
  ldr r3, [sp, #28]
  cmp r2, #0
  add r6, r6, #1
  orr r2, r2, r3
  strneh  r2, [r7, #0]  @ movhi
  add lr, lr, fp
  cmp r9, r6
  mov r4, lr, asr #8
  mov ip, r5, asr #8
  add r7, r7, #2
  bgt .L8708
  b .L8685
.L8969:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  lr, r3, asr #3
  beq .L8685
  ldr r7, [sp, #4]
  mov ip, #0
  add r2, r7, r6, asl #1
  b .L8999
.L9494:
  sub r0, r0, #32
  add r2, r2, #16
.L8999:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L9000
  ands  r3, r4, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r2, #14] @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r5
  strneh  r3, [r2, #12] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r2, #10] @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r2, #8]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r2, #6]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r5
  strneh  r3, [r2, #4]  @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r2, #2]  @ movhi
  movs  r3, r4, lsr #28
  ldrne r7, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r2, #0]  @ movhi
.L9000:
  add ip, ip, #1
  cmp lr, ip
  bne .L9494
  b .L8685
.L9394:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  lr, r3, asr #3
  beq .L8685
  ldr r5, [sp, #4]
  ldr r3, .L9512+28
  add r2, r5, r6, asl #1
  add r0, r0, r3
  mov r1, #0
  b .L9438
.L9495:
  sub ip, ip, #64
  add r2, r2, #16
.L9438:
  ldr r4, [r0, #68]
  cmp r4, #0
  beq .L9439
  ands  r3, r4, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r2, #6]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r2, #4]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r2, #2]  @ movhi
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #28]
  orrne r3, r3, r4
  strneh  r3, [r2, #0]  @ movhi
.L9439:
  ldr r4, [ip, #0]
  cmp r4, #0
  beq .L9448
  ands  r3, r4, #255
  ldrne r5, [sp, #28]
  orrne r3, r3, r5
  strneh  r3, [r2, #14] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r2, #12] @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r2, #10] @ movhi
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r2, #8]  @ movhi
.L9448:
  add r1, r1, #1
  cmp lr, r1
  sub r0, r0, #64
  bne .L9495
  b .L8685
.L8839:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  lr, r3, asr #3
  beq .L8685
  ldr r7, [sp, #4]
  mov ip, #0
  add r2, r7, r6, asl #1
  b .L8869
.L9496:
  add r0, r0, #32
  add r2, r2, #16
.L8869:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L8870
  ands  r3, r4, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r2, #0]  @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r5
  strneh  r3, [r2, #2]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r2, #4]  @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r2, #6]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r2, #8]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r5
  strneh  r3, [r2, #10] @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r2, #12] @ movhi
  movs  r3, r4, lsr #28
  ldrne r7, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r2, #14] @ movhi
.L8870:
  add ip, ip, #1
  cmp lr, ip
  bne .L9496
  b .L8685
.L9174:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  lr, r3, asr #3
  beq .L8685
  ldr r1, [sp, #4]
  ldr r3, .L9512+32
  add r2, r1, r6, asl #1
  add r0, r0, r3
  mov r1, #0
  b .L9218
.L9497:
  add ip, ip, #64
  add r2, r2, #16
.L9218:
  ldr r4, [ip, #0]
  cmp r4, #0
  beq .L9219
  ands  r3, r4, #255
  ldrne r5, [sp, #28]
  orrne r3, r3, r5
  strneh  r3, [r2, #0]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r2, #2]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r2, #4]  @ movhi
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r2, #6]  @ movhi
.L9219:
  ldr r4, [r0, #-60]
  cmp r4, #0
  beq .L9228
  ands  r3, r4, #255
  ldrne r5, [sp, #28]
  orrne r3, r3, r5
  strneh  r3, [r2, #8]  @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r2, #10] @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r2, #12] @ movhi
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r2, #14] @ movhi
.L9228:
  add r1, r1, #1
  cmp lr, r1
  add r0, r0, #64
  bne .L9497
  b .L8685
.L9021:
  mov r3, r1, lsr #3
  ands  r2, r1, #7
  add r0, ip, r3, asl #6
  ldreq r1, [sp, #68]
  beq .L9125
  cmp r2, #3
  rsb lr, r2, #8
  bhi .L9498
  subs  r5, lr, #4
  ldr r1, [r0, #0]
  ldreq r1, [sp, #68]
  beq .L9138
  mov r3, r2, asl #3
  mov r2, r1, lsr r3
  mov ip, #0
.L9139:
  ands  r3, r2, #255
  ldr r1, [sp, #28]
  ldrne r6, [sp, #68]
  orr r3, r3, r1
  mov r1, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r1, r6]  @ movhi
  cmp ip, r5
  mov r2, r2, lsr #8
  bne .L9139
  ldr r7, [sp, #68]
  add r3, r7, lr, asl #1
  sub r1, r3, #8
.L9138:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L9144
  ands  r3, r2, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #28]
  orrne r3, r3, ip
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, r3, lr
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r3, r2
  strneh  r3, [r1, #6]  @ movhi
.L9144:
  add r1, r1, #8
.L9130:
  add r0, r0, #64
.L9125:
  movs  lr, r4, lsr #3
  beq .L8685
  mov ip, #0
  b .L9154
.L9499:
  add r0, r0, #64
  add r1, r1, #16
.L9154:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L9155
  ands  r3, r2, #255
  ldrne r4, [sp, #28]
  orrne r3, r3, r4
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r3, r5
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #6]  @ movhi
.L9155:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L9164
  ands  r3, r2, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r3, r4
  strneh  r3, [r1, #10] @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r3, r5
  strneh  r3, [r1, #12] @ movhi
  movs  r3, r2, lsr #24
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r1, #14] @ movhi
.L9164:
  add ip, ip, #1
  cmp lr, ip
  bne .L9499
  b .L8685
.L8891:
  ands  r2, r4, #7
  mov r3, r4, lsr #3
  sub r0, r0, r3, asl #5
  ldreq r5, [sp, #68]
  beq .L8940
  rsbs  lr, r2, #8
  ldr r4, [r0, #0]
  ldreq r5, [sp, #68]
  beq .L8943
  mov r3, r2, asl #2
  mov r4, r4, asl r3
  mov r6, #0
.L8944:
  movs  r3, r4, lsr #28
  ldr r7, [sp, #28]
  ldrne r8, [sp, #68]
  orr r3, r1, r3
  mov r5, r6, asl #1
  orr r3, r3, r7
  add r6, r6, #1
  strneh  r3, [r5, r8]  @ movhi
  cmp lr, r6
  mov r4, r4, asl #4
  bne .L8944
  ldr r2, [sp, #68]
  add r5, r2, lr, asl #1
.L8943:
  sub r0, r0, #32
.L8940:
  movs  ip, ip, lsr #3
  beq .L8685
  mov r2, #0
  b .L8950
.L9500:
  sub r0, r0, #32
  add r5, r5, #16
.L8950:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L8951
  ands  r3, r4, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #14] @ movhi
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r5, #12] @ movhi
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r5, #10] @ movhi
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne lr, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, lr
  strneh  r3, [r5, #8]  @ movhi
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [r5, #6]  @ movhi
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [r5, #4]  @ movhi
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [r5, #2]  @ movhi
  movs  r3, r4, lsr #28
  ldrne lr, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, lr
  strneh  r3, [r5, #0]  @ movhi
.L8951:
  add r2, r2, #1
  cmp r2, ip
  bne .L9500
  b .L8685
.L9241:
  ands  r0, r1, #7
  mov r3, r1, lsr #3
  sub r2, ip, r3, asl #6
  ldreq r0, [sp, #68]
  beq .L9345
  cmp r0, #3
  rsb lr, r0, #8
  bhi .L9501
  subs  r5, lr, #4
  ldr r1, [r2, #4]
  ldreq r0, [sp, #68]
  beq .L9358
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov ip, #0
.L9359:
  movs  r3, r1, lsr #24
  ldr r0, [sp, #28]
  ldrne r6, [sp, #68]
  orr r3, r3, r0
  mov r0, ip, asl #1
  add ip, ip, #1
  strneh  r3, [r0, r6]  @ movhi
  cmp r5, ip
  mov r1, r1, asl #8
  bne .L9359
  ldr r7, [sp, #68]
  add r3, r7, lr, asl #1
  sub r0, r3, #8
.L9358:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L9364
  ands  r3, r1, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #28]
  orrne r3, r3, ip
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, r3, lr
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r1, lsr #24
  ldrne r1, [sp, #28]
  orrne r3, r3, r1
  strneh  r3, [r0, #0]  @ movhi
.L9364:
  add r0, r0, #8
.L9350:
  sub r2, r2, #64
.L9345:
  movs  lr, r4, lsr #3
  beq .L8685
  mov ip, #0
  b .L9374
.L9502:
  sub r2, r2, #64
  add r0, r0, #16
.L9374:
  ldr r1, [r2, #4]
  cmp r1, #0
  beq .L9375
  ands  r3, r1, #255
  ldrne r4, [sp, #28]
  orrne r3, r3, r4
  strneh  r3, [r0, #6]  @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r3, r5
  strneh  r3, [r0, #4]  @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r0, #2]  @ movhi
  movs  r3, r1, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r0, #0]  @ movhi
.L9375:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L9384
  ands  r3, r1, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r0, #14] @ movhi
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r3, r4
  strneh  r3, [r0, #12] @ movhi
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r3, r5
  strneh  r3, [r0, #10] @ movhi
  movs  r3, r1, lsr #24
  ldrne r6, [sp, #28]
  orrne r3, r3, r6
  strneh  r3, [r0, #8]  @ movhi
.L9384:
  add ip, ip, #1
  cmp ip, lr
  bne .L9502
  b .L8685
.L8761:
  mov r3, r4, lsr #3
  mov r2, r3, asl #5
  ands  r3, r4, #7
  add lr, r0, r2
  ldreq ip, [sp, #68]
  beq .L8810
  rsbs  r4, r3, #8
  ldr r0, [r0, r2]
  ldreq ip, [sp, #68]
  beq .L8813
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  mov ip, #0
.L8814:
  ands  r3, r0, #15
  ldr r6, [sp, #28]
  ldrne r7, [sp, #68]
  orr r3, r1, r3
  mov r2, ip, asl #1
  orr r3, r3, r6
  add ip, ip, #1
  strneh  r3, [r2, r7]  @ movhi
  cmp ip, r4
  mov r0, r0, lsr #4
  bne .L8814
  ldr r8, [sp, #68]
  add ip, r8, r4, asl #1
.L8813:
  add lr, lr, #32
.L8810:
  movs  r4, r5, lsr #3
  beq .L8685
  mov r0, #0
  b .L8820
.L9503:
  add lr, lr, #32
  add ip, ip, #16
.L8820:
  ldr r2, [lr, #0]
  cmp r2, #0
  beq .L8821
  ands  r3, r2, #15
  ldrne r5, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r5
  strneh  r3, [ip, #0]  @ movhi
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [ip, #2]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [ip, #4]  @ movhi
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #6]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r5
  strneh  r3, [ip, #8]  @ movhi
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r6
  strneh  r3, [ip, #10] @ movhi
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r7
  strneh  r3, [ip, #12] @ movhi
  movs  r3, r2, lsr #28
  ldrne r8, [sp, #28]
  orrne r3, r1, r3
  orrne r3, r3, r8
  strneh  r3, [ip, #14] @ movhi
.L8821:
  add r0, r0, #1
  cmp r0, r4
  bne .L9503
  b .L8685
.L9023:
  ldr r1, [sp, #92]
  rsb ip, r0, #8
  cmp r1, ip
  blt .L9504
  cmp r0, #3
  bls .L9056
  cmp ip, #0
  ldr r2, [r6, #4]
  ldreq r4, [sp, #68]
  beq .L9060
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r0, #0
.L9061:
  ands  r3, r1, #255
  ldr r8, [sp, #28]
  ldrne lr, [sp, #68]
  mov r2, r0, asl #1
  orr r3, r3, r8
  add r0, r0, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp ip, r0
  mov r1, r1, lsr #8
  bne .L9061
  ldr r0, [sp, #68]
  add r4, r0, ip, asl #1
.L9060:
  ldr r1, [sp, #92]
  add r6, r6, #64
  rsb r5, ip, r1
  b .L9025
.L8893:
  ldr r2, [sp, #92]
  rsb r6, lr, #8
  cmp r2, r6
  blt .L9505
  cmp r6, #0
  ldr r2, [r0, #0]
  ldreq r8, [sp, #68]
  beq .L8906
  mov r3, lr, asl #2
  mov lr, r2, asl r3
  mov r5, #0
.L8907:
  movs  r3, lr, lsr #28
  ldr r7, [sp, #28]
  ldrne r8, [sp, #68]
  orr r3, r1, r3
  mov r4, r5, asl #1
  orr r3, r3, r7
  add r5, r5, #1
  strneh  r3, [r4, r8]  @ movhi
  cmp r6, r5
  mov lr, lr, asl #4
  bne .L8907
  ldr ip, [sp, #68]
  add r8, ip, r6, asl #1
.L8906:
  ldr lr, [sp, #92]
  sub r0, r0, #32
  rsb r2, r6, lr
  b .L8895
.L8763:
  ldr r7, [sp, #92]
  rsb lr, r3, #8
  cmp r7, lr
  blt .L9506
  cmp lr, #0
  ldr r2, [r5, #0]
  ldreq r6, [sp, #68]
  beq .L8776
  mov r3, r3, asl #2
  mov r2, r2, lsr r3
  mov ip, #0
.L8777:
  ands  r3, r2, #15
  ldr r4, [sp, #28]
  ldrne r6, [sp, #68]
  orr r3, r1, r3
  mov r0, ip, asl #1
  orr r3, r3, r4
  add ip, ip, #1
  strneh  r3, [r0, r6]  @ movhi
  cmp lr, ip
  mov r2, r2, lsr #4
  bne .L8777
  ldr r7, [sp, #68]
  add r6, r7, lr, asl #1
.L8776:
  ldr r8, [sp, #92]
  add r5, r5, #32
  rsb r7, lr, r8
  b .L8765
.L9243:
  ldr r1, [sp, #92]
  rsb ip, r0, #8
  cmp r1, ip
  blt .L9507
  cmp r0, #3
  bls .L9276
  cmp ip, #0
  ldr r2, [r6, #0]
  ldreq r4, [sp, #68]
  beq .L9280
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r0, #0
.L9281:
  movs  r3, r2, lsr #24
  ldr r8, [sp, #28]
  ldrne lr, [sp, #68]
  mov r1, r0, asl #1
  orr r3, r3, r8
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp ip, r0
  mov r2, r2, asl #8
  bne .L9281
  ldr r0, [sp, #68]
  add r4, r0, ip, asl #1
.L9280:
  ldr r1, [sp, #92]
  sub r6, r6, #64
  rsb r5, ip, r1
  b .L9245
.L9507:
  cmp r1, #0
  ble .L8685
  cmp r0, #3
  bls .L9249
  mov r3, r0, asl #3
  ldr r2, [r6, #0]
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r0, #0
.L9252:
  movs  r3, r2, lsr #24
  ldr r4, [sp, #28]
  ldrne r5, [sp, #68]
  ldr r6, [sp, #92]
  mov r1, r0, asl #1
  orr r3, r3, r4
  add r0, r0, #1
  strneh  r3, [r1, r5]  @ movhi
  cmp r6, r0
  mov r2, r2, asl #8
  bne .L9252
  b .L8685
.L9506:
  cmp r7, #0
  ble .L8685
  ldr r2, [r0, r2]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  mov ip, #0
.L8770:
  ands  r3, r0, #15
  ldr r8, [sp, #28]
  ldrne lr, [sp, #68]
  orr r3, r1, r3
  mov r2, ip, asl #1
  orr r3, r3, r8
  strneh  r3, [r2, lr]  @ movhi
  ldr r2, [sp, #92]
  add ip, ip, #1
  cmp r2, ip
  mov r0, r0, lsr #4
  bne .L8770
  b .L8685
.L9505:
  cmp r2, #0
  ble .L8685
  ldr r2, [r0, #0]
  mov r3, lr, asl #2
  mov r0, r2, asl r3
  mov ip, #0
.L8900:
  movs  r3, r0, lsr #28
  ldr r4, [sp, #28]
  ldrne r5, [sp, #68]
  orr r3, r1, r3
  ldr r6, [sp, #92]
  mov r2, ip, asl #1
  orr r3, r3, r4
  add ip, ip, #1
  strneh  r3, [r2, r5]  @ movhi
  cmp r6, ip
  mov r0, r0, asl #4
  bne .L8900
  b .L8685
.L9501:
  cmp lr, #0
  ldr r1, [r2, #0]
  ldreq r0, [sp, #68]
  beq .L9350
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov ip, #0
.L9351:
  movs  r3, r1, lsr #24
  ldr r6, [sp, #28]
  ldrne r7, [sp, #68]
  mov r0, ip, asl #1
  orr r3, r3, r6
  add ip, ip, #1
  strneh  r3, [r0, r7]  @ movhi
  cmp ip, lr
  mov r1, r1, asl #8
  bne .L9351
  ldr r8, [sp, #68]
  sub r2, r2, #64
  add r0, r8, lr, asl #1
  b .L9345
.L9498:
  cmp lr, #0
  ldr r1, [r0, #4]
  ldreq r1, [sp, #68]
  beq .L9130
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r2, r1, lsr r3
  mov ip, #0
.L9131:
  ands  r3, r2, #255
  ldr r6, [sp, #28]
  ldrne r7, [sp, #68]
  mov r1, ip, asl #1
  orr r3, r3, r6
  add ip, ip, #1
  strneh  r3, [r1, r7]  @ movhi
  cmp ip, lr
  mov r2, r2, lsr #8
  bne .L9131
  ldr r8, [sp, #68]
  add r0, r0, #64
  add r1, r8, lr, asl #1
  b .L9125
.L9504:
  cmp r1, #0
  ble .L8685
  cmp r0, #3
  bls .L9029
  mov r3, r0, asl #3
  ldr r2, [r6, #4]
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r0, #0
.L9032:
  ands  r3, r1, #255
  ldr r2, [sp, #28]
  ldrne r4, [sp, #68]
  ldr r5, [sp, #92]
  orr r3, r3, r2
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r5, r0
  mov r1, r1, lsr #8
  bne .L9032
  b .L8685
.L9511:
  mov r6, #0
  b .L8743
.L9276:
  subs  lr, ip, #4
  ldr r2, [r6, #4]
  ldreq r1, [sp, #68]
  beq .L9288
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r0, #0
.L9289:
  movs  r3, r2, lsr #24
  ldr r1, [sp, #28]
  ldrne r4, [sp, #68]
  orr r3, r3, r1
  mov r1, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r1, r4]  @ movhi
  cmp lr, r0
  mov r2, r2, asl #8
  bne .L9289
  ldr r5, [sp, #68]
  add r3, r5, ip, asl #1
  sub r1, r3, #8
.L9288:
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L9294
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, r3, lr
  strneh  r3, [r1, #2]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r0, [sp, #28]
  orrne r3, r3, r0
  strneh  r3, [r1, #0]  @ movhi
.L9294:
  add r4, r1, #8
  b .L9280
.L9056:
  subs  lr, ip, #4
  ldr r2, [r6, #0]
  ldreq r1, [sp, #68]
  beq .L9068
  mov r3, r0, asl #3
  mov r1, r2, lsr r3
  mov r0, #0
.L9069:
  ands  r3, r1, #255
  ldr r2, [sp, #28]
  ldrne r4, [sp, #68]
  orr r3, r3, r2
  mov r2, r0, asl #1
  add r0, r0, #1
  strneh  r3, [r2, r4]  @ movhi
  cmp r0, lr
  mov r1, r1, lsr #8
  bne .L9069
  ldr r5, [sp, #68]
  add r3, r5, ip, asl #1
  sub r1, r3, #8
.L9068:
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L9074
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r3, r7
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r3, r8
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, r3, lr
  strneh  r3, [r1, #4]  @ movhi
  movs  r3, r2, lsr #24
  ldrne r0, [sp, #28]
  orrne r3, r3, r0
  strneh  r3, [r1, #6]  @ movhi
.L9074:
  add r4, r1, #8
  b .L9060
.L9509:
  ldr r5, [sp, #20]
  b .L9474
.L9508:
  mov ip, fp
  b .L9472
.L9249:
  ldr r7, [sp, #92]
  mov r3, r0, asl #3
  ldr r1, [r6, #4]
  add r2, r7, r0
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L9256
  cmp r7, #0
  movne r0, #0
  beq .L8685
.L9272:
  movs  r3, r1, lsr #24
  ldr r5, [sp, #28]
  ldrne r6, [sp, #68]
  ldr r7, [sp, #92]
  mov r2, r0, asl #1
  orr r3, r3, r5
  add r0, r0, #1
  strneh  r3, [r2, r6]  @ movhi
  cmp r7, r0
  mov r1, r1, asl #8
  bne .L9272
  b .L8685
.L9029:
  ldr r7, [sp, #92]
  ldr r3, [r6, #0]
  add r2, r7, r0
  cmp r2, #4
  mov r1, r0, asl #3
  mov r2, r3, lsr r1
  bhi .L9036
  cmp r7, #0
  movne r0, #0
  beq .L8685
.L9052:
  ands  r3, r2, #255
  ldr r5, [sp, #28]
  ldrne r6, [sp, #68]
  ldr r7, [sp, #92]
  mov r1, r0, asl #1
  orr r3, r3, r5
  add r0, r0, #1
  strneh  r3, [r1, r6]  @ movhi
  cmp r7, r0
  mov r2, r2, lsr #8
  bne .L9052
  b .L8685
.L9256:
  rsbs  ip, r0, #4
  ldreq lr, [sp, #68]
  beq .L9261
  mov r0, #0
.L9262:
  movs  r3, r1, lsr #24
  ldr r8, [sp, #28]
  ldrne lr, [sp, #68]
  mov r2, r0, asl #1
  orr r3, r3, r8
  add r0, r0, #1
  strneh  r3, [r2, lr]  @ movhi
  cmp r0, ip
  mov r1, r1, asl #8
  bne .L9262
  ldr r0, [sp, #68]
  add lr, r0, ip, asl #1
.L9261:
  ldr r1, [sp, #92]
  ldr r2, [r6, #0]
  subs  ip, r1, ip
  beq .L8685
  mov r0, #0
.L9268:
  ldr r4, [sp, #28]
  movs  r3, r2, lsr #24
  mov r1, r0, asl #1
  orr r3, r3, r4
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r0, ip
  mov r2, r2, asl #8
  bne .L9268
  b .L8685
.L9036:
  rsbs  ip, r0, #4
  ldreq lr, [sp, #68]
  beq .L9041
  mov r0, #0
.L9042:
  ands  r3, r2, #255
  ldr r8, [sp, #28]
  ldrne lr, [sp, #68]
  mov r1, r0, asl #1
  orr r3, r3, r8
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r0, ip
  mov r2, r2, lsr #8
  bne .L9042
  ldr r0, [sp, #68]
  add lr, r0, ip, asl #1
.L9041:
  ldr r1, [sp, #92]
  ldr r2, [r6, #4]
  subs  ip, r1, ip
  beq .L8685
  mov r0, #0
.L9048:
  ldr r4, [sp, #28]
  ands  r3, r2, #255
  mov r1, r0, asl #1
  orr r3, r3, r4
  add r0, r0, #1
  strneh  r3, [r1, lr]  @ movhi
  cmp r0, ip
  mov r2, r2, lsr #8
  bne .L9048
  b .L8685
  .size render_scanline_obj_color16_2D, .-render_scanline_obj_color16_2D
  .align  2
  .global render_scanline_obj_color32_1D
  .type render_scanline_obj_color32_1D, %function
render_scanline_obj_color32_1D:
  @ args = 0, pretend = 0, frame = 112
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr ip, .L10356
  sub sp, sp, #112
  ldrh  r4, [ip, #6]
  add r0, r0, r0, asl #2
  str r4, [sp, #32]
  ldr r5, [sp, #32]
  ldrh  r4, [ip, #80]
  ldr ip, .L10356+4
  add r0, r5, r0, asl #5
  ldr ip, [ip, r0, asl #2]
  mov lr, r4, lsr #11
  and lr, lr, #2
  mov r4, r4, asl #27
  str ip, [sp, #36]
  orr lr, lr, r4, lsr #31
  cmp ip, #0
  ldr ip, .L10356+8
  mov lr, lr, asl #9
  add r0, ip, r0, asl #7
  orr lr, lr, #256
  str r0, [sp, #40]
  str r1, [sp, #8]
  str r2, [sp, #4]
  str r3, [sp, #0]
  str lr, [sp, #24]
  beq .L10302
  mov r8, #0
  add r6, r3, r1, asl #2
  rsb r7, r1, r2
  str r6, [sp, #84]
  str r7, [sp, #108]
  str r8, [sp, #28]
  mov ip, r8
.L9517:
  ldr lr, [sp, #40]
  ldr r0, .L10356+12
  ldrb  r3, [ip, lr]  @ zero_extendqisi2
  mov r3, r3, asl #3
  ldrh  r4, [r3, r0]
  add r3, r3, r0
  ldrh  r1, [r3, #2]
  mov r5, r4, lsr #12
  and r2, r5, #12
  orr r0, r2, r1, lsr #14
  and ip, r4, #255
  mov r2, r1, asl #23
  cmp ip, #160
  ldrh  lr, [r3, #4]
  mov r6, r2, asr #23
  ldr r3, .L10356+16
  ldr r2, .L10356+20
  subgt ip, ip, #256
  tst r4, #256
  ldr r7, [r2, r0, asl #2]
  ldr sl, [r3, r0, asl #2]
  beq .L9520
  tst r4, #8192
  beq .L9522
  tst r4, #512
  mov r3, r1, lsr #4
  ldr r4, .L10356+12
  and r3, r3, #992
  add r3, r3, r4
  add r2, r7, r7, lsr #31
  ldrh  r5, [r3, #30]
  mov r4, r2, asr #1
  add r1, sl, sl, lsr #31
  ldr r2, [sp, #8]
  movne r0, r4, asl #1
  str r5, [sp, #12]
  mov r5, r1, asr #1
  strne r0, [sp, #56]
  moveq r9, r7
  streq r4, [sp, #56]
  moveq r0, r5
  movne r9, r7, asl #1
  movne r0, r5, asl #1
  cmp r6, r2
  ldrh  r8, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  fp, [r3, #22]
  bge .L9527
  rsb r2, r6, r2
  rsb r9, r2, r9
  cmp r9, #0
  ble .L9529
  ldr r3, [sp, #56]
  ldr r6, [sp, #8]
  rsb r3, r2, r3
  str r3, [sp, #56]
.L9527:
  ldr r2, [sp, #4]
  add r3, r6, r9
  cmp r3, r2
  blt .L9531
  rsb r9, r6, r2
  cmp r9, #0
  ble .L9529
.L9531:
  mov r3, r8, asl #16
  ldr r8, [sp, #12]
  mov r2, r1, asl #16
  mov r2, r2, asr #16
  mov r1, r8, asl #16
  add r0, ip, r0
  str r2, [sp, #48]
  mov ip, r1, asr #16
  ldr r2, [sp, #32]
  ldr r1, [sp, #0]
  mov r4, r4, asl #8
  mov r3, r3, asr #16
  mov r5, r5, asl #8
  cmp fp, #0
  str r4, [sp, #92]
  str r3, [sp, #44]
  str r5, [sp, #52]
  add r8, r1, r6, asl #2
  rsb r4, r0, r2
  bne .L9533
  mov r3, r5
  mla r3, r4, ip, r3
  mov r0, r3, asr #8
  cmp r0, sl
  bcs .L9529
  cmp r7, #0
  add r3, r7, #7
  movge r3, r7
  mov r2, lr, asl #22
  mov r3, r3, asr #3
  mov r3, r3, asl #1
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L10356+24
  add r0, r0, ip, asl #2
  cmp r9, #0
  add lr, r3, r0, asl #3
  ble .L9529
  ldr r3, [sp, #48]
  ldr r2, [sp, #56]
  mul r3, r4, r3
  ldr r4, [sp, #44]
  ldr r5, [sp, #92]
  mul r2, r4, r2
  rsb r3, r2, r3
  add r0, r5, r3
  mov r4, r0, asr #8
  cmp r4, r7
  movcs ip, fp
  bcs .L9539
  b .L10352
.L9540:
  cmp r4, r7
  bcc .L10316
.L9539:
  ldr r6, [sp, #44]
  add ip, ip, #1
  add r0, r0, r6
  cmp r9, ip
  mov r4, r0, asr #8
  add r8, r8, #4
  bne .L9540
.L9529:
  ldr r0, [sp, #28]
  ldr r1, [sp, #36]
  add r0, r0, #1
  cmp r0, r1
  str r0, [sp, #28]
  beq .L10302
.L10334:
  ldr ip, [sp, #28]
  b .L9517
.L9520:
  ldr r0, [sp, #32]
  tst r1, #8192
  rsb ip, ip, r0
  rsbne r3, ip, sl
  subne ip, r3, #1
  mov r2, r1, asl #19
  and r3, r5, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L9529
  .p2align 2
.L9601:
  .word .L9597
  .word .L9598
  .word .L9599
  .word .L9600
.L9597:
  cmp r7, #0
  add r3, r7, #7
  mov r2, lr, asl #22
  movge r3, r7
  mov r5, r3, asr #3
  mov r2, r2, lsr #22
  mov r3, ip, lsr #3
  mla r0, r5, r3, r2
  ldr r2, [sp, #8]
  and r1, ip, #7
  ldr r3, .L10356+24
  add r1, r1, r0, asl #3
  cmp r6, r2
  mov r2, lr, lsr #8
  add r0, r3, r1, asl #2
  and r1, r2, #240
  blt .L10329
  ldr ip, [sp, #4]
  add r3, r6, r7
  cmp ip, r3
  bhi .L9683
  rsb r7, r6, ip
  cmp r7, #0
  ble .L9529
  ldr lr, [sp, #0]
  movs  r8, r7, lsr #3
  add r2, lr, r6, asl #2
  beq .L9686
  mov r5, r2
  mov lr, r0
  mov ip, #0
.L9688:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L9689
  ands  r3, r4, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #0]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #4]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #24]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  orrne r3, r1, r3
  strne r3, [r5, #28]
.L9689:
  add ip, ip, #1
  cmp ip, r8
  add lr, lr, #32
  add r5, r5, #32
  bne .L9688
  mov r3, r8, asl #5
  add r0, r0, r3
  add r2, r2, r3
.L9686:
  ands  lr, r7, #7
  beq .L9529
  ldr r0, [r0, #0]
  mov ip, #0
.L9708:
  ldr r5, [sp, #24]
  ands  r3, r0, #15
  orr r3, r5, r3
  orr r3, r1, r3
  strne r3, [r2, ip, asl #2]
  add ip, ip, #1
  cmp ip, lr
  mov r0, r0, lsr #4
  bne .L9708
  b .L9529
.L9598:
  cmp r7, #0
  add r3, r7, #7
  mov r2, lr, asl #22
  movge r3, r7
  mov r5, r3, asr #3
  mov r2, r2, lsr #22
  mov r1, ip, lsr #3
  mla r0, r5, r1, r2
  subs  r3, r7, #8
  submi r3, r7, #1
  ldr r8, [sp, #8]
  add r0, r0, r3, asr #3
  and r2, ip, #7
  ldr r3, .L10356+24
  add r2, r2, r0, asl #3
  mov r1, lr, lsr #8
  cmp r6, r8
  add r0, r3, r2, asl #2
  and r1, r1, #240
  blt .L10330
  ldr ip, [sp, #4]
  add r3, r6, r7
  cmp ip, r3
  bhi .L9813
  rsb r8, r6, ip
  cmp r8, #0
  ble .L9529
  ldr lr, [sp, #0]
  movs  r7, r8, lsr #3
  add r2, lr, r6, asl #2
  beq .L9816
  mov r5, r2
  mov lr, r0
  mov ip, #0
.L9818:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L9819
  ands  r3, r4, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  orrne r3, r1, r3
  strne r3, [r5, #0]
.L9819:
  add ip, ip, #1
  cmp ip, r7
  sub lr, lr, #32
  add r5, r5, #32
  bne .L9818
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add r2, r2, r7, asl #5
.L9816:
  ands  lr, r8, #7
  beq .L9529
  ldr r0, [r0, #0]
  mov ip, #0
.L9838:
  ldr r5, [sp, #24]
  movs  r3, r0, lsr #28
  orr r3, r5, r3
  orr r3, r1, r3
  strne r3, [r2, ip, asl #2]
  add ip, ip, #1
  cmp ip, lr
  mov r0, r0, asl #4
  bne .L9838
  b .L9529
.L9599:
  cmp r7, #0
  add r3, r7, #7
  mov r1, lr, asl #22
  movge r3, r7
  mov r2, ip, lsr #3
  mov lr, r3, asr #3
  mov r1, r1, lsr #22
  mov r2, r2, asl #1
  mla r0, r2, lr, r1
  and r3, ip, #7
  add r3, r3, r0, asl #2
  ldr r8, [sp, #8]
  mov r0, r3, asl #3
  ldr r3, .L10356+24
  cmp r6, r8
  add r1, r0, r3
  blt .L10331
  ldr r8, [sp, #4]
  add r3, r6, r7
  cmp r8, r3
  bhi .L10018
  rsb r8, r6, r8
  cmp r8, #0
  ble .L9529
  ldr ip, [sp, #0]
  movs  r7, r8, lsr #3
  add r2, ip, r6, asl #2
  beq .L10021
  ldr r3, .L10356+32
  mov r5, r2
  add r0, r0, r3
  mov lr, r1
  mov ip, #0
.L10023:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L10024
  ands  r3, r4, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r5, #0]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r5, #4]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r5, #8]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  strne r3, [r5, #12]
.L10024:
  ldr r4, [r0, #-60]
  cmp r4, #0
  beq .L10033
  ands  r3, r4, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r5, #24]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  strne r3, [r5, #28]
.L10033:
  add ip, ip, #1
  cmp r7, ip
  add lr, lr, #64
  add r5, r5, #32
  add r0, r0, #64
  bne .L10023
  add r1, r1, r7, asl #6
  add r2, r2, r7, asl #5
.L10021:
  ands  ip, r8, #7
  beq .L9529
  cmp ip, #3
  ldrls r0, [r1, #0]
  bls .L10056
  ldr r0, [r1, #0]
  cmp r0, #0
  beq .L10046
  ands  r3, r0, #255
  ldrne r5, [sp, #24]
  orrne r3, r5, r3
  strne r3, [r2, #0]
  mov r3, r0, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r2, #4]
  mov r3, r0, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r2, #8]
  movs  r3, r0, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r2, #12]
.L10046:
  subs  ip, ip, #4
  ldr r0, [r1, #4]
  addne r2, r2, #16
  beq .L9529
.L10056:
  mov r1, #0
.L10057:
  ldr lr, [sp, #24]
  ands  r3, r0, #255
  orr r3, lr, r3
  strne r3, [r2, r1, asl #2]
  add r1, r1, #1
  cmp ip, r1
  mov r0, r0, lsr #8
  bhi .L10057
  b .L9529
.L9600:
  cmp r7, #0
  add r2, r7, #7
  movge r2, r7
  subs  r3, r7, #8
  submi r3, r7, #1
  mov r1, ip, lsr #3
  mov r5, r2, asr #3
  mov r3, r3, asr #3
  mla r0, r5, r1, r3
  mov r2, lr, asl #22
  mov r2, r2, lsr #22
  add r2, r2, r0, asl #1
  and r3, ip, #7
  add r3, r3, r2, asl #2
  ldr ip, [sp, #8]
  mov r0, r3, asl #3
  ldr r3, .L10356+24
  cmp r6, ip
  add r1, r0, r3
  blt .L10332
  add r3, r6, r7
  ldr r7, [sp, #4]
  cmp r3, r7
  bcc .L10238
  rsb r8, r6, r7
  cmp r8, #0
  ble .L9529
  ldr ip, [sp, #0]
  movs  r7, r8, lsr #3
  add r6, ip, r6, asl #2
  beq .L10241
  ldr r3, .L10356+28
  mov r5, r6
  add r0, r0, r3
  mov lr, r1
  mov ip, #0
.L10243:
  ldr r4, [r0, #68]
  cmp r4, #0
  beq .L10244
  ands  r3, r4, #255
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  strne r3, [r5, #0]
.L10244:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L10253
  ands  r3, r4, #255
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r5, #20]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  strne r3, [r5, #16]
.L10253:
  add ip, ip, #1
  cmp ip, r7
  sub lr, lr, #64
  add r5, r5, #32
  sub r0, r0, #64
  bne .L10243
  rsb r3, r7, r7, asl #26
  add r1, r1, r3, asl #6
  add r6, r6, r7, asl #5
.L10241:
  ands  r0, r8, #7
  beq .L9529
  cmp r0, #3
  ldrls r2, [r1, #4]
  bls .L10276
  ldr r2, [r1, #4]
  cmp r2, #0
  beq .L10266
  ands  r3, r2, #255
  ldrne r5, [sp, #24]
  orrne r3, r5, r3
  strne r3, [r6, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r6, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r6, #4]
  movs  r3, r2, lsr #24
  ldrne ip, [sp, #24]
  orrne r3, ip, r3
  strne r3, [r6, #0]
.L10266:
  subs  r0, r0, #4
  ldr r2, [r1, #0]
  addne r6, r6, #16
  beq .L9529
.L10276:
  mov r1, #0
.L10277:
  ldr lr, [sp, #24]
  movs  r3, r2, lsr #24
  orr r3, lr, r3
  strne r3, [r6, r1, asl #2]
  add r1, r1, #1
  cmp r0, r1
  mov r2, r2, asl #8
  bhi .L10277
  b .L9529
.L9522:
  mov r3, r1, lsr #4
  ldr r2, .L10356+12
  and r3, r3, #992
  add r3, r3, r2
  tst r4, #512
  ldrh  r4, [r3, #30]
  add r2, r7, r7, lsr #31
  add r1, sl, sl, lsr #31
  str r4, [sp, #20]
  mov r4, r2, asr #1
  ldr r2, [sp, #8]
  mov r5, r1, asr #1
  ldrh  r8, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq fp, r7
  moveq r9, r4
  moveq r0, r5
  movne fp, r7, asl #1
  movne r9, r4, asl #1
  movne r0, r5, asl #1
  cmp r6, r2
  str r3, [sp, #16]
  bge .L9560
  rsb r2, r6, r2
  rsb fp, r2, fp
  cmp fp, #0
  ble .L9529
  ldr r6, [sp, #8]
  rsb r9, r2, r9
.L9560:
  ldr r2, [sp, #4]
  add r3, r6, fp
  cmp r3, r2
  blt .L9563
  rsb fp, r6, r2
  cmp fp, #0
  ble .L9529
.L9563:
  mov r3, r8, asl #16
  ldr r8, [sp, #20]
  add ip, ip, r0
  mov r2, r1, asl #16
  ldr r0, [sp, #16]
  mov r1, r8, asl #16
  mov r2, r2, asr #16
  mov r1, r1, asr #16
  cmp r0, #0
  str r2, [sp, #68]
  mov r0, lr, lsr #8
  str r1, [sp, #76]
  ldr r2, [sp, #32]
  ldr r1, [sp, #0]
  mov r4, r4, asl #8
  mov r3, r3, asr #16
  and r0, r0, #240
  str r4, [sp, #88]
  str r3, [sp, #64]
  mov r5, r5, asl #8
  add r8, r1, r6, asl #2
  rsb r4, ip, r2
  str r0, [sp, #104]
  bne .L9565
  ldr r3, [sp, #76]
  mla r3, r4, r3, r5
  mov r0, r3, asr #8
  cmp r0, sl
  bcs .L9529
  cmp r7, #0
  add r3, r7, #7
  mov r2, lr, asl #22
  movge r3, r7
  mov r1, r0, lsr #3
  mov r3, r3, asr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L10356+24
  add r0, r0, ip, asl #3
  cmp fp, #0
  add r1, r3, r0, asl #2
  ble .L9529
  ldr r3, [sp, #68]
  ldr r2, [sp, #64]
  mul r3, r4, r3
  mul r2, r9, r2
  ldr r4, [sp, #88]
  rsb r3, r2, r3
  add r0, r4, r3
  mov r4, r0, asr #8
  cmp r4, r7
  ldrcs r5, [sp, #16]
  bcs .L9571
  b .L10353
.L9572:
  cmp r4, r7
  bcc .L10318
.L9571:
  ldr r6, [sp, #64]
  add r5, r5, #1
  add r0, r0, r6
  cmp fp, r5
  mov r4, r0, asr #8
  add r8, r8, #4
  bne .L9572
  ldr r0, [sp, #28]
  ldr r1, [sp, #36]
  add r0, r0, #1
  cmp r0, r1
  str r0, [sp, #28]
  bne .L10334
.L10302:
  add sp, sp, #112
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L9533:
  cmp r7, #0
  add r1, r7, #7
  mov r2, lr, asl #22
  movge r1, r7
  ldr r3, .L10356+24
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #6
  cmp r9, #0
  str r2, [sp, #100]
  str r1, [sp, #60]
  ble .L9529
  mov r3, fp, asl #16
  mov fp, r3, asr #16
  ldr r6, [sp, #44]
  ldr r3, [sp, #48]
  ldr r0, [sp, #56]
  ldr r1, [sp, #56]
  mul r0, r6, r0
  mul r3, r4, r3
  mul r2, r4, ip
  mul r1, fp, r1
  rsb r3, r0, r3
  ldr ip, [sp, #92]
  ldr r0, [sp, #52]
  rsb r2, r1, r2
  add r5, ip, r3
  add lr, r0, r2
  mov ip, r5, asr #8
  mov r4, lr, asr #8
  cmp ip, r7
  cmpcc r4, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L9549
  b .L10354
.L9550:
  cmp ip, r7
  cmpcc r4, sl
  bcc .L9551
.L9549:
  ldr r1, [sp, #44]
  add r6, r6, #1
  add r5, r5, r1
  add lr, lr, fp
  cmp r9, r6
  mov ip, r5, asr #8
  mov r4, lr, asr #8
  add r8, r8, #4
  bne .L9550
  b .L9529
.L9565:
  cmp r7, #0
  add r1, r7, #7
  mov r2, lr, asl #22
  movge r1, r7
  ldr r3, .L10356+24
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #5
  cmp fp, #0
  str r2, [sp, #96]
  str r1, [sp, #80]
  ble .L9529
  ldr r6, [sp, #16]
  ldr r2, [sp, #76]
  mov r3, r6, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #72]
  ldr r1, [sp, #72]
  ldr r3, [sp, #68]
  ldr r0, [sp, #64]
  mul r2, r4, r2
  mul r3, r4, r3
  mul r1, r9, r1
  mul r0, r9, r0
  ldr ip, [sp, #88]
  rsb r2, r1, r2
  rsb r3, r0, r3
  add lr, ip, r3
  add r5, r5, r2
  mov r4, lr, asr #8
  mov r2, r5, asr #8
  cmp r4, r7
  cmpcc r2, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L9584
  b .L10355
.L9585:
  cmp r4, r7
  cmpcc r2, sl
  bcc .L9587
.L9584:
  ldr r0, [sp, #64]
  ldr r1, [sp, #72]
  add r6, r6, #1
  add lr, lr, r0
  add r5, r5, r1
  cmp fp, r6
  mov r4, lr, asr #8
  mov r2, r5, asr #8
  add r8, r8, #4
  bne .L9585
  b .L9529
.L10337:
  ldr r3, [sp, #96]
  and r0, r2, #7
  add r0, r3, r0, asl #2
  and r1, r2, #7
  mov r3, r2, asr #3
  ldr r2, [sp, #80]
  mov ip, r4, asr #1
  mul r2, r3, r2
  and r9, ip, #3
  ldr ip, [sp, #96]
  mov r3, r4, asr #1
  add r1, ip, r1, asl #2
  and ip, r3, #3
  mov r3, r4, asr #3
  add r2, r2, r3, asl #5
  add r3, r0, r2
  tst r4, #1
  add r0, r1, r2
  ldreqb  r3, [r0, ip]  @ zero_extendqisi2
  ldrneb  r3, [r3, r9]  @ zero_extendqisi2
  ldr r4, [sp, #24]
  movne r0, r3, lsr #4
  andeq r0, r3, #15
  ldr ip, [sp, #104]
  ldr r2, [sp, #72]
  orr r3, r0, r4
  ldr r1, [sp, #64]
  cmp r0, #0
  add r6, r6, #1
  orr r3, ip, r3
  strne r3, [r8, #0]
  add lr, lr, r1
  add r5, r5, r2
  cmp fp, r6
  mov r4, lr, asr #8
  mov r2, r5, asr #8
  add r8, r8, #4
  ble .L9529
.L9587:
  cmp r2, sl
  cmpcc r4, r7
  bcc .L10337
  b .L9529
.L9574:
  cmp r4, r7
  bcs .L9529
.L10318:
  mov r3, r4, asr #1
  and sl, r3, #3
  mov r3, r4, asr #3
  mov r3, r3, asl #5
  mov r2, r4, asr #1
  tst r4, #1
  add ip, r3, r1
  and r6, r2, #3
  add r2, r3, r1
  ldreqb  r3, [r2, r6]  @ zero_extendqisi2
  ldrneb  r3, [ip, sl]  @ zero_extendqisi2
  ldr lr, [sp, #24]
  movne r2, r3, lsr #4
  andeq r2, r3, #15
  cmp r2, #0
  orr r3, r2, lr
  ldr r2, [sp, #104]
  ldr ip, [sp, #64]
  add r5, r5, #1
  orr r3, r2, r3
  strne r3, [r8, #0]
  add r0, r0, ip
  cmp fp, r5
  mov r4, r0, asr #8
  add r8, r8, #4
  bgt .L9574
  b .L9529
.L9542:
  cmp r4, r7
  bcs .L9529
.L10316:
  ldr r1, [sp, #44]
  mov r3, r4, asr #3
  add r0, r0, r1
  add r3, lr, r3, asl #6
  and r1, r4, #7
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  ldr r5, [sp, #24]
  cmp r2, #0
  add ip, ip, #1
  orr r3, r5, r2
  strne r3, [r8, #0]
  cmp r9, ip
  mov r4, r0, asr #8
  add r8, r8, #4
  bgt .L9542
  b .L9529
.L10357:
  .align  2
.L10356:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word oam_ram
  .word obj_height_table
  .word obj_width_table
  .word vram+65536
  .word vram+65472
  .word vram+65600
.L10332:
  rsb r0, r6, ip
  rsb r4, r0, r7
  cmp r4, #0
  ble .L9529
  ldr lr, [sp, #4]
  add r3, r6, r7
  cmp lr, r3
  bhi .L10085
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub r6, r1, r3, asl #6
  bne .L10087
  ldr r5, [sp, #108]
  ldr r4, [sp, #84]
.L10089:
  movs  lr, r5, lsr #3
  beq .L10147
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L10149:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L10150
  ands  r3, r2, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r1, #4]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #0]
.L10150:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L10159
  ands  r3, r2, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r1, #28]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #24]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r1, #20]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #16]
.L10159:
  add ip, ip, #1
  cmp ip, lr
  sub r0, r0, #64
  add r1, r1, #32
  bne .L10149
  rsb r3, lr, lr, asl #26
  add r6, r6, r3, asl #6
  add r4, r4, lr, asl #5
.L10147:
  ands  r0, r5, #7
  beq .L9529
  cmp r0, #3
  ldrls r2, [r6, #4]
  bls .L10182
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L10172
  ands  r3, r2, #255
  ldrne ip, [sp, #24]
  orrne r3, ip, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #24]
  orrne r3, r1, r3
  strne r3, [r4, #4]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r4, #0]
.L10172:
  subs  r0, r0, #4
  ldr r2, [r6, #0]
  addne r4, r4, #16
  beq .L9529
.L10182:
  mov r1, #0
.L10183:
  ldr r5, [sp, #24]
  movs  r3, r2, lsr #24
  orr r3, r5, r3
  strne r3, [r4, r1, asl #2]
  add r1, r1, #1
  cmp r0, r1
  mov r2, r2, asl #8
  bhi .L10183
  b .L9529
.L10331:
  rsb r0, r6, r8
  rsb lr, r0, r7
  cmp lr, #0
  ble .L9529
  ldr ip, [sp, #4]
  add r3, r6, r7
  cmp ip, r3
  bhi .L9865
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  add r6, r1, r3, asl #6
  bne .L9867
  ldr r5, [sp, #108]
  ldr r4, [sp, #84]
.L9869:
  movs  lr, r5, lsr #3
  beq .L9927
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L9929:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L9930
  ands  r3, r2, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #12]
.L9930:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L9939
  ands  r3, r2, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #28]
.L9939:
  add ip, ip, #1
  cmp lr, ip
  add r0, r0, #64
  add r1, r1, #32
  bne .L9929
  add r6, r6, lr, asl #6
  add r4, r4, lr, asl #5
.L9927:
  ands  r0, r5, #7
  beq .L9529
  cmp r0, #3
  ldrls r1, [r6, #0]
  bls .L9962
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L9952
  ands  r3, r2, #255
  ldrne ip, [sp, #24]
  orrne r3, ip, r3
  strne r3, [r4, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  strne r3, [r4, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #24]
  orrne r3, r1, r3
  strne r3, [r4, #8]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r4, #12]
.L9952:
  subs  r0, r0, #4
  ldr r1, [r6, #4]
  addne r4, r4, #16
  beq .L9529
.L9962:
  mov r2, #0
.L9963:
  ldr r5, [sp, #24]
  ands  r3, r1, #255
  orr r3, r5, r3
  strne r3, [r4, r2, asl #2]
  add r2, r2, #1
  cmp r0, r2
  mov r1, r1, lsr #8
  bhi .L9963
  b .L9529
.L10330:
  rsb r4, r6, r8
  rsb ip, r4, r7
  cmp ip, #0
  ble .L9529
  ldr lr, [sp, #4]
  add r3, r6, r7
  cmp lr, r3
  bhi .L9735
  mov r3, r4, lsr #3
  ands  lr, r4, #7
  sub r0, r0, r3, asl #5
  bne .L9737
  ldr r2, [sp, #108]
  ldr ip, [sp, #84]
.L9739:
  movs  r7, r2, lsr #3
  beq .L9756
  mov r5, ip
  mov lr, r0
  mov r6, #0
.L9758:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L9759
  ands  r3, r4, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  orrne r3, r1, r3
  strne r3, [r5, #0]
.L9759:
  add r6, r6, #1
  cmp r6, r7
  sub lr, lr, #32
  add r5, r5, #32
  bne .L9758
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add ip, ip, r7, asl #5
.L9756:
  ands  lr, r2, #7
  beq .L9529
  ldr r0, [r0, #0]
  mov r2, #0
.L9778:
  ldr r5, [sp, #24]
  movs  r3, r0, lsr #28
  orr r3, r5, r3
  orr r3, r1, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r2, lr
  mov r0, r0, asl #4
  bne .L9778
  b .L9529
.L10329:
  ldr r3, [sp, #8]
  rsb r4, r6, r3
  rsb r5, r4, r7
  cmp r5, #0
  ble .L9529
  add r3, r6, r7
  ldr r6, [sp, #4]
  cmp r6, r3
  bhi .L9605
  mov r3, r4, lsr #3
  mov r2, r3, asl #5
  ands  r3, r4, #7
  add r5, r0, r2
  bne .L9607
  ldr r7, [sp, #108]
  ldr r6, [sp, #84]
.L9609:
  movs  r4, r7, lsr #3
  beq .L9626
  mov ip, r6
  mov r0, r5
  mov lr, #0
.L9628:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L9629
  ands  r3, r2, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #24]
  movs  r3, r2, lsr #28
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  orrne r3, r1, r3
  strne r3, [ip, #28]
.L9629:
  add lr, lr, #1
  cmp r4, lr
  add r0, r0, #32
  add ip, ip, #32
  bne .L9628
  mov r3, r4, asl #5
  add r5, r5, r3
  add r6, r6, r3
.L9626:
  ands  ip, r7, #7
  beq .L9529
  ldr r2, [r5, #0]
  mov r0, #0
.L9648:
  ldr r4, [sp, #24]
  ands  r3, r2, #15
  orr r3, r4, r3
  orr r3, r1, r3
  strne r3, [r6, r0, asl #2]
  add r0, r0, #1
  cmp r0, ip
  mov r2, r2, lsr #4
  bne .L9648
  b .L9529
.L10354:
  mov r6, #0
.L9551:
  cmp r4, sl
  movcc r3, #0
  movcs r3, #1
  cmp r7, ip
  orrls r3, r3, #1
  cmp r3, #0
  beq .L10317
  b .L9529
.L9552:
  cmp r4, sl
  cmpcc ip, r7
  bcs .L9529
.L10317:
  ldr r2, [sp, #44]
  and r3, r4, #7
  add r5, r5, r2
  ldr r0, [sp, #100]
  mov r2, ip, asr #3
  mov r3, r3, asl #3
  add r3, r3, r2, asl #6
  add r3, r3, r0
  ldr r0, [sp, #60]
  mov r2, r4, asr #3
  mla r0, r2, r0, r3
  and r1, ip, #7
  ldrb  r3, [r0, r1]  @ zero_extendqisi2
  ldr r1, [sp, #24]
  cmp r3, #0
  add r6, r6, #1
  orr r3, r1, r3
  strne r3, [r8, #0]
  add lr, lr, fp
  cmp r9, r6
  mov r4, lr, asr #8
  mov ip, r5, asr #8
  add r8, r8, #4
  bgt .L9552
  b .L9529
.L9813:
  cmp r5, #0
  beq .L9529
  ldr r7, [sp, #0]
  mov ip, #0
  add r2, r7, r6, asl #2
  b .L9843
.L10338:
  sub r0, r0, #32
  add r2, r2, #32
.L9843:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L9844
  ands  r3, r4, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r2, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  orrne r3, r1, r3
  strne r3, [r2, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r2, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r2, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r2, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  orrne r3, r1, r3
  strne r3, [r2, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r2, #4]
  movs  r3, r4, lsr #28
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r2, #0]
.L9844:
  add ip, ip, #1
  cmp r5, ip
  bne .L10338
  b .L9529
.L10238:
  cmp r5, #0
  beq .L9529
  ldr r3, [sp, #0]
  mov ip, #0
  add r2, r3, r6, asl #2
  ldr r3, .L10356+28
  add r0, r0, r3
  b .L10282
.L10339:
  sub r1, r1, #64
  add r2, r2, #32
.L10282:
  ldr r4, [r0, #68]
  cmp r4, #0
  beq .L10283
  ands  r3, r4, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r2, #12]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r2, #8]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r2, #4]
  movs  r3, r4, lsr #24
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  strne r3, [r2, #0]
.L10283:
  ldr r4, [r1, #0]
  cmp r4, #0
  beq .L10292
  ands  r3, r4, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r2, #28]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r2, #24]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r2, #20]
  movs  r3, r4, lsr #24
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  strne r3, [r2, #16]
.L10292:
  add ip, ip, #1
  cmp r5, ip
  sub r0, r0, #64
  bne .L10339
  b .L9529
.L9683:
  cmp r5, #0
  beq .L9529
  ldr r7, [sp, #0]
  mov ip, #0
  add r2, r7, r6, asl #2
  b .L9713
.L10340:
  add r0, r0, #32
  add r2, r2, #32
.L9713:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L9714
  ands  r3, r4, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r2, #0]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  orrne r3, r1, r3
  strne r3, [r2, #4]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r2, #8]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r2, #12]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r2, #16]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  orrne r3, r1, r3
  strne r3, [r2, #20]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r2, #24]
  movs  r3, r4, lsr #28
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r2, #28]
.L9714:
  add ip, ip, #1
  cmp r5, ip
  bne .L10340
  b .L9529
.L10018:
  cmp lr, #0
  beq .L9529
  ldr r3, [sp, #0]
  mov ip, #0
  add r2, r3, r6, asl #2
  ldr r3, .L10356+32
  add r0, r0, r3
  b .L10062
.L10341:
  add r1, r1, #64
  add r2, r2, #32
.L10062:
  ldr r4, [r1, #0]
  cmp r4, #0
  beq .L10063
  ands  r3, r4, #255
  ldrne r5, [sp, #24]
  orrne r3, r5, r3
  strne r3, [r2, #0]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r2, #4]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r2, #8]
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r2, #12]
.L10063:
  ldr r4, [r0, #-60]
  cmp r4, #0
  beq .L10072
  ands  r3, r4, #255
  ldrne r5, [sp, #24]
  orrne r3, r5, r3
  strne r3, [r2, #16]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r2, #20]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r2, #24]
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r2, #28]
.L10072:
  add ip, ip, #1
  cmp lr, ip
  add r0, r0, #64
  bne .L10341
  b .L9529
.L9865:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  add r0, r1, r3, asl #6
  ldreq r1, [sp, #84]
  beq .L9969
  cmp r2, #3
  rsb ip, r2, #8
  bhi .L10342
  subs  r4, ip, #4
  ldr r1, [r0, #0]
  ldreq r1, [sp, #84]
  beq .L9982
  mov r3, r2, asl #3
  mov r2, r1, lsr r3
  mov r1, #0
.L9983:
  ands  r3, r2, #255
  ldr r5, [sp, #24]
  ldrne r6, [sp, #84]
  orr r3, r5, r3
  strne r3, [r6, r1, asl #2]
  add r1, r1, #1
  cmp r1, r4
  mov r2, r2, lsr #8
  bne .L9983
  ldr r7, [sp, #84]
  add r3, r7, ip, asl #2
  sub r1, r3, #16
.L9982:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L9988
  ands  r3, r2, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #24]
  orrne r3, ip, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r5, [sp, #24]
  orrne r3, r5, r3
  strne r3, [r1, #12]
.L9988:
  add r1, r1, #16
.L9974:
  add r0, r0, #64
.L9969:
  movs  lr, lr, lsr #3
  beq .L9529
  mov ip, #0
  b .L9998
.L10343:
  add r0, r0, #64
  add r1, r1, #32
.L9998:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L9999
  ands  r3, r2, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r1, #12]
.L9999:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L10008
  ands  r3, r2, #255
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r5, [sp, #24]
  orrne r3, r5, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r1, #28]
.L10008:
  add ip, ip, #1
  cmp lr, ip
  bne .L10343
  b .L9529
.L9735:
  ands  r2, r4, #7
  mov r3, r4, lsr #3
  sub r0, r0, r3, asl #5
  ldreq r5, [sp, #84]
  beq .L9784
  rsbs  r5, r2, #8
  ldr lr, [r0, #0]
  ldreq r5, [sp, #84]
  beq .L9787
  mov r3, r2, asl #2
  mov r4, lr, asl r3
  mov lr, #0
.L9788:
  ldr r6, [sp, #24]
  movs  r3, r4, lsr #28
  ldrne r7, [sp, #84]
  orr r3, r6, r3
  orr r3, r1, r3
  strne r3, [r7, lr, asl #2]
  add lr, lr, #1
  cmp r5, lr
  mov r4, r4, asl #4
  bne .L9788
  ldr r8, [sp, #84]
  add r5, r8, r5, asl #2
.L9787:
  sub r0, r0, #32
.L9784:
  movs  ip, ip, lsr #3
  beq .L9529
  mov r2, #0
  b .L9794
.L10344:
  sub r0, r0, #32
  add r5, r5, #32
.L9794:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L9795
  ands  r3, r4, #15
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  orrne r3, r1, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  orrne r3, r1, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #28
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #0]
.L9795:
  add r2, r2, #1
  cmp r2, ip
  bne .L10344
  b .L9529
.L10085:
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub r2, r1, r3, asl #6
  ldreq r0, [sp, #84]
  beq .L10189
  cmp ip, #3
  rsb lr, ip, #8
  bhi .L10345
  subs  r5, lr, #4
  ldr r1, [r2, #4]
  ldreq r0, [sp, #84]
  beq .L10202
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r0, #0
.L10203:
  movs  r3, r1, lsr #24
  ldr ip, [sp, #24]
  ldrne r6, [sp, #84]
  orr r3, ip, r3
  strne r3, [r6, r0, asl #2]
  add r0, r0, #1
  cmp r5, r0
  mov r1, r1, asl #8
  bne .L10203
  ldr r7, [sp, #84]
  add r3, r7, lr, asl #2
  sub r0, r3, #16
.L10202:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L10208
  ands  r3, r1, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r0, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #24]
  orrne r3, ip, r3
  strne r3, [r0, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  strne r3, [r0, #4]
  movs  r3, r1, lsr #24
  ldrne r1, [sp, #24]
  orrne r3, r1, r3
  strne r3, [r0, #0]
.L10208:
  add r0, r0, #16
.L10194:
  sub r2, r2, #64
.L10189:
  movs  lr, r4, lsr #3
  beq .L9529
  mov ip, #0
  b .L10218
.L10346:
  sub r2, r2, #64
  add r0, r0, #32
.L10218:
  ldr r1, [r2, #4]
  cmp r1, #0
  beq .L10219
  ands  r3, r1, #255
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  strne r3, [r0, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r5, [sp, #24]
  orrne r3, r5, r3
  strne r3, [r0, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r0, #4]
  movs  r3, r1, lsr #24
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  strne r3, [r0, #0]
.L10219:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L10228
  ands  r3, r1, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r0, #28]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #24]
  orrne r3, r4, r3
  strne r3, [r0, #24]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #24]
  orrne r3, r5, r3
  strne r3, [r0, #20]
  movs  r3, r1, lsr #24
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  strne r3, [r0, #16]
.L10228:
  add ip, ip, #1
  cmp ip, lr
  bne .L10346
  b .L9529
.L9605:
  mov r3, r4, lsr #3
  mov r2, r3, asl #5
  ands  r3, r4, #7
  add lr, r0, r2
  ldreq ip, [sp, #84]
  beq .L9654
  rsbs  r4, r3, #8
  ldr r0, [r0, r2]
  ldreq ip, [sp, #84]
  beq .L9657
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  mov r2, #0
.L9658:
  ldr r6, [sp, #24]
  ands  r3, r0, #15
  ldrne r7, [sp, #84]
  orr r3, r6, r3
  orr r3, r1, r3
  strne r3, [r7, r2, asl #2]
  add r2, r2, #1
  cmp r2, r4
  mov r0, r0, lsr #4
  bne .L9658
  ldr r8, [sp, #84]
  add ip, r8, r4, asl #2
.L9657:
  add lr, lr, #32
.L9654:
  movs  r4, r5, lsr #3
  beq .L9529
  mov r0, #0
  b .L9664
.L10347:
  add lr, lr, #32
  add ip, ip, #32
.L9664:
  ldr r2, [lr, #0]
  cmp r2, #0
  beq .L9665
  ands  r3, r2, #15
  ldrne r5, [sp, #24]
  orrne r3, r5, r3
  orrne r3, r1, r3
  strne r3, [ip, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [ip, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [ip, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r5, [sp, #24]
  orrne r3, r5, r3
  orrne r3, r1, r3
  strne r3, [ip, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #24]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [ip, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r7, [sp, #24]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [ip, #24]
  movs  r3, r2, lsr #28
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #28]
.L9665:
  add r0, r0, #1
  cmp r0, r4
  bne .L10347
  b .L9529
.L9867:
  ldr lr, [sp, #108]
  rsb r0, ip, #8
  cmp lr, r0
  blt .L10348
  cmp ip, #3
  bls .L9900
  cmp r0, #0
  ldr r2, [r6, #4]
  ldreq r4, [sp, #84]
  beq .L9904
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L9905:
  ands  r3, r1, #255
  ldr r8, [sp, #24]
  ldrne ip, [sp, #84]
  orr r3, r8, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r0, r2
  mov r1, r1, lsr #8
  bne .L9905
  ldr lr, [sp, #84]
  add r4, lr, r0, asl #2
.L9904:
  ldr r3, [sp, #108]
  add r6, r6, #64
  rsb r5, r0, r3
  b .L9869
.L9737:
  ldr r2, [sp, #108]
  rsb r5, lr, #8
  cmp r2, r5
  blt .L10349
  cmp r5, #0
  ldr r2, [r0, #0]
  ldreq ip, [sp, #84]
  beq .L9750
  mov r3, lr, asl #2
  mov r4, r2, asl r3
  mov lr, #0
.L9751:
  ldr r7, [sp, #24]
  movs  r3, r4, lsr #28
  ldrne r8, [sp, #84]
  orr r3, r7, r3
  orr r3, r1, r3
  strne r3, [r8, lr, asl #2]
  add lr, lr, #1
  cmp r5, lr
  mov r4, r4, asl #4
  bne .L9751
  ldr lr, [sp, #84]
  add ip, lr, r5, asl #2
.L9750:
  ldr r3, [sp, #108]
  sub r0, r0, #32
  rsb r2, r5, r3
  b .L9739
.L9607:
  ldr r7, [sp, #108]
  rsb lr, r3, #8
  cmp r7, lr
  blt .L10350
  cmp lr, #0
  ldr r2, [r5, #0]
  ldreq r6, [sp, #84]
  beq .L9620
  mov r3, r3, asl #2
  mov r2, r2, lsr r3
  mov r0, #0
.L9621:
  ldr r4, [sp, #24]
  ands  r3, r2, #15
  ldrne r6, [sp, #84]
  orr r3, r4, r3
  orr r3, r1, r3
  strne r3, [r6, r0, asl #2]
  add r0, r0, #1
  cmp lr, r0
  mov r2, r2, lsr #4
  bne .L9621
  ldr r7, [sp, #84]
  add r6, r7, lr, asl #2
.L9620:
  ldr r8, [sp, #108]
  add r5, r5, #32
  rsb r7, lr, r8
  b .L9609
.L10087:
  ldr r1, [sp, #108]
  rsb r0, ip, #8
  cmp r1, r0
  blt .L10351
  cmp ip, #3
  bls .L10120
  cmp r0, #0
  ldr r2, [r6, #0]
  ldreq r4, [sp, #84]
  beq .L10124
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L10125:
  movs  r3, r2, lsr #24
  ldr r8, [sp, #24]
  ldrne ip, [sp, #84]
  orr r3, r8, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r0, r1
  mov r2, r2, asl #8
  bne .L10125
  ldr lr, [sp, #84]
  add r4, lr, r0, asl #2
.L10124:
  ldr r3, [sp, #108]
  sub r6, r6, #64
  rsb r5, r0, r3
  b .L10089
.L10351:
  cmp r1, #0
  ble .L9529
  cmp ip, #3
  bls .L10093
  ldr r2, [r6, #0]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L10096:
  movs  r3, r2, lsr #24
  ldr r4, [sp, #24]
  ldrne r5, [sp, #84]
  orr r3, r4, r3
  ldr r6, [sp, #108]
  strne r3, [r5, r1, asl #2]
  add r1, r1, #1
  cmp r6, r1
  mov r2, r2, asl #8
  bne .L10096
  b .L9529
.L10350:
  cmp r7, #0
  ble .L9529
  ldr r2, [r0, r2]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  mov r2, #0
.L9614:
  ldr r8, [sp, #24]
  ands  r3, r0, #15
  ldrne ip, [sp, #84]
  orr r3, r8, r3
  orr r3, r1, r3
  ldr lr, [sp, #108]
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp lr, r2
  mov r0, r0, lsr #4
  bne .L9614
  b .L9529
.L10349:
  cmp r2, #0
  ble .L9529
  ldr r2, [r0, #0]
  mov r3, lr, asl #2
  mov r0, r2, asl r3
  mov r2, #0
.L9744:
  ldr r4, [sp, #24]
  movs  r3, r0, lsr #28
  ldrne r5, [sp, #84]
  orr r3, r4, r3
  orr r3, r1, r3
  ldr r6, [sp, #108]
  strne r3, [r5, r2, asl #2]
  add r2, r2, #1
  cmp r6, r2
  mov r0, r0, asl #4
  bne .L9744
  b .L9529
.L10345:
  cmp lr, #0
  ldr r1, [r2, #0]
  ldreq r0, [sp, #84]
  beq .L10194
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r0, #0
.L10195:
  movs  r3, r1, lsr #24
  ldr r6, [sp, #24]
  ldrne r7, [sp, #84]
  orr r3, r6, r3
  strne r3, [r7, r0, asl #2]
  add r0, r0, #1
  cmp r0, lr
  mov r1, r1, asl #8
  bne .L10195
  ldr r8, [sp, #84]
  sub r2, r2, #64
  add r0, r8, lr, asl #2
  b .L10189
.L10342:
  cmp ip, #0
  ldr r1, [r0, #4]
  ldreq r1, [sp, #84]
  beq .L9974
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r2, r1, lsr r3
  mov r1, #0
.L9975:
  ands  r3, r2, #255
  ldr r6, [sp, #24]
  ldrne r7, [sp, #84]
  orr r3, r6, r3
  strne r3, [r7, r1, asl #2]
  add r1, r1, #1
  cmp r1, ip
  mov r2, r2, lsr #8
  bne .L9975
  ldr r8, [sp, #84]
  add r0, r0, #64
  add r1, r8, ip, asl #2
  b .L9969
.L10348:
  cmp lr, #0
  ble .L9529
  cmp ip, #3
  bls .L9873
  ldr r2, [r6, #4]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L9876:
  ands  r3, r1, #255
  ldr r0, [sp, #24]
  ldrne r4, [sp, #84]
  orr r3, r0, r3
  ldr r5, [sp, #108]
  strne r3, [r4, r2, asl #2]
  add r2, r2, #1
  cmp r5, r2
  mov r1, r1, lsr #8
  bne .L9876
  b .L9529
.L10355:
  mov r6, #0
  b .L9587
.L10120:
  subs  lr, r0, #4
  ldr r2, [r6, #4]
  ldreq r1, [sp, #84]
  beq .L10132
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L10133:
  movs  r3, r2, lsr #24
  ldr r4, [sp, #24]
  ldrne r5, [sp, #84]
  orr r3, r4, r3
  strne r3, [r5, r1, asl #2]
  add r1, r1, #1
  cmp lr, r1
  mov r2, r2, asl #8
  bne .L10133
  ldr r7, [sp, #84]
  add r3, r7, r0, asl #2
  sub r1, r3, #16
.L10132:
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L10138
  ands  r3, r2, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #24]
  orrne r3, ip, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  strne r3, [r1, #4]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r1, #0]
.L10138:
  add r4, r1, #16
  b .L10124
.L9900:
  subs  lr, r0, #4
  ldr r2, [r6, #0]
  ldreq r1, [sp, #84]
  beq .L9912
  mov r3, ip, asl #3
  mov r1, r2, lsr r3
  mov r2, #0
.L9913:
  ands  r3, r1, #255
  ldr r4, [sp, #24]
  ldrne r5, [sp, #84]
  orr r3, r4, r3
  strne r3, [r5, r2, asl #2]
  add r2, r2, #1
  cmp r2, lr
  mov r1, r1, lsr #8
  bne .L9913
  ldr r7, [sp, #84]
  add r3, r7, r0, asl #2
  sub r1, r3, #16
.L9912:
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L9918
  ands  r3, r2, #255
  ldrne r8, [sp, #24]
  orrne r3, r8, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #24]
  orrne r3, ip, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #24]
  orrne r3, lr, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #24]
  orrne r3, r2, r3
  strne r3, [r1, #12]
.L9918:
  add r4, r1, #16
  b .L9904
.L10353:
  ldr r5, [sp, #16]
  b .L10318
.L10352:
  mov ip, fp
  b .L10316
.L10093:
  ldr r7, [sp, #108]
  mov r3, ip, asl #3
  ldr r1, [r6, #4]
  add r2, r7, ip
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L10100
  cmp r7, #0
  movne r2, #0
  beq .L9529
.L10116:
  movs  r3, r1, lsr #24
  ldr r5, [sp, #24]
  ldrne r6, [sp, #84]
  orr r3, r5, r3
  ldr r7, [sp, #108]
  strne r3, [r6, r2, asl #2]
  add r2, r2, #1
  cmp r7, r2
  mov r1, r1, asl #8
  bne .L10116
  b .L9529
.L9873:
  ldr r7, [sp, #108]
  ldr r3, [r6, #0]
  add r2, r7, ip
  cmp r2, #4
  mov r1, ip, asl #3
  mov r2, r3, lsr r1
  bhi .L9880
  cmp r7, #0
  movne r1, #0
  beq .L9529
.L9896:
  ands  r3, r2, #255
  ldr r5, [sp, #24]
  ldrne r6, [sp, #84]
  orr r3, r5, r3
  ldr r7, [sp, #108]
  strne r3, [r6, r1, asl #2]
  add r1, r1, #1
  cmp r7, r1
  mov r2, r2, lsr #8
  bne .L9896
  b .L9529
.L10100:
  rsbs  r0, ip, #4
  ldreq ip, [sp, #84]
  beq .L10105
  mov r2, #0
.L10106:
  movs  r3, r1, lsr #24
  ldr r8, [sp, #24]
  ldrne ip, [sp, #84]
  orr r3, r8, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r2, r0
  mov r1, r1, asl #8
  bne .L10106
  ldr lr, [sp, #84]
  add ip, lr, r0, asl #2
.L10105:
  ldr r1, [sp, #108]
  ldr r2, [r6, #0]
  subs  r0, r1, r0
  beq .L9529
  mov r1, #0
.L10112:
  ldr r4, [sp, #24]
  movs  r3, r2, lsr #24
  orr r3, r4, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, asl #8
  bne .L10112
  b .L9529
.L9880:
  rsbs  r0, ip, #4
  ldreq ip, [sp, #84]
  beq .L9885
  mov r1, #0
.L9886:
  ands  r3, r2, #255
  ldr r8, [sp, #24]
  ldrne ip, [sp, #84]
  orr r3, r8, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, lsr #8
  bne .L9886
  ldr lr, [sp, #84]
  add ip, lr, r0, asl #2
.L9885:
  ldr r1, [sp, #108]
  ldr r2, [r6, #4]
  subs  r0, r1, r0
  beq .L9529
  mov r1, #0
.L9892:
  ldr r4, [sp, #24]
  ands  r3, r2, #255
  orr r3, r4, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, lsr #8
  bne .L9892
  b .L9529
  .size render_scanline_obj_color32_1D, .-render_scanline_obj_color32_1D
  .align  2
  .global render_scanline_obj_color32_2D
  .type render_scanline_obj_color32_2D, %function
render_scanline_obj_color32_2D:
  @ args = 0, pretend = 0, frame = 96
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr ip, .L11200
  sub sp, sp, #96
  ldrh  r4, [ip, #6]
  add r0, r0, r0, asl #2
  str r4, [sp, #36]
  ldr r5, [sp, #36]
  ldrh  r4, [ip, #80]
  ldr ip, .L11200+4
  add r0, r5, r0, asl #5
  ldr ip, [ip, r0, asl #2]
  mov lr, r4, lsr #11
  and lr, lr, #2
  mov r4, r4, asl #27
  str ip, [sp, #40]
  orr lr, lr, r4, lsr #31
  cmp ip, #0
  ldr ip, .L11200+8
  mov lr, lr, asl #9
  add r0, ip, r0, asl #7
  orr lr, lr, #256
  str r0, [sp, #44]
  str r1, [sp, #12]
  str r2, [sp, #8]
  str r3, [sp, #4]
  str lr, [sp, #28]
  beq .L11146
  mov r8, #0
  add r6, r3, r1, asl #2
  rsb r7, r1, r2
  str r6, [sp, #68]
  str r7, [sp, #92]
  str r8, [sp, #32]
  mov ip, r8
.L10361:
  ldr lr, [sp, #44]
  ldr r0, .L11200+12
  ldrb  r3, [ip, lr]  @ zero_extendqisi2
  mov r3, r3, asl #3
  ldrh  r4, [r3, r0]
  add r3, r3, r0
  ldrh  r1, [r3, #2]
  mov r5, r4, lsr #12
  and r2, r5, #12
  orr r0, r2, r1, lsr #14
  and ip, r4, #255
  mov r2, r1, asl #23
  cmp ip, #160
  ldrh  lr, [r3, #4]
  mov r6, r2, asr #23
  ldr r3, .L11200+16
  ldr r2, .L11200+20
  subgt ip, ip, #256
  tst r4, #256
  ldr r8, [r2, r0, asl #2]
  ldr sl, [r3, r0, asl #2]
  beq .L10364
  tst r4, #8192
  beq .L10366
  tst r4, #512
  mov r3, r1, lsr #4
  ldr r4, .L11200+12
  and r3, r3, #992
  add r3, r3, r4
  add r2, r8, r8, lsr #31
  ldrh  r5, [r3, #30]
  mov r4, r2, asr #1
  add r1, sl, sl, lsr #31
  ldr r2, [sp, #12]
  movne r0, r4, asl #1
  str r5, [sp, #16]
  mov r5, r1, asr #1
  strne r0, [sp, #52]
  moveq r9, r8
  streq r4, [sp, #52]
  moveq r0, r5
  movne r9, r8, asl #1
  movne r0, r5, asl #1
  cmp r6, r2
  ldrh  r7, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  fp, [r3, #22]
  bge .L10371
  rsb r2, r6, r2
  rsb r9, r2, r9
  cmp r9, #0
  ble .L10373
  ldr r3, [sp, #52]
  ldr r6, [sp, #12]
  rsb r3, r2, r3
  str r3, [sp, #52]
.L10371:
  ldr r2, [sp, #8]
  add r3, r6, r9
  cmp r3, r2
  blt .L10375
  rsb r9, r6, r2
  cmp r9, #0
  ble .L10373
.L10375:
  mov r3, r7, asl #16
  mov r2, r1, asl #16
  ldr r7, [sp, #16]
  mov r3, r3, asr #16
  add r0, ip, r0
  str r3, [sp, #48]
  mov ip, r2, asr #16
  ldr r3, [sp, #36]
  ldr r2, [sp, #4]
  mov r1, r7, asl #16
  mov r4, r4, asl #8
  cmp fp, #0
  str r4, [sp, #76]
  mov r1, r1, asr #16
  mov r4, r5, asl #8
  add r7, r2, r6, asl #2
  rsb r0, r0, r3
  bne .L10377
  mla r3, r0, r1, r4
  mov r1, r3, asr #8
  cmp r1, sl
  bcs .L10373
  mov r3, lr, asl #22
  mov r2, r1, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #2
  ldr r3, .L11200+24
  cmp r9, #0
  add lr, r3, r1, asl #3
  ble .L10373
  ldr r4, [sp, #48]
  ldr r2, [sp, #52]
  mul r3, r0, ip
  mul r2, r4, r2
  ldr r5, [sp, #76]
  rsb r3, r2, r3
  add r0, r5, r3
  mov r4, r0, asr #8
  cmp r4, r8
  movcs ip, fp
  bcs .L10383
  b .L11196
.L10384:
  cmp r4, r8
  bcc .L11160
.L10383:
  ldr r6, [sp, #48]
  add ip, ip, #1
  add r0, r0, r6
  cmp r9, ip
  mov r4, r0, asr #8
  add r7, r7, #4
  bne .L10384
.L10373:
  ldr ip, [sp, #32]
  ldr lr, [sp, #40]
  add ip, ip, #1
  cmp ip, lr
  str ip, [sp, #32]
  beq .L11146
.L11178:
  ldr ip, [sp, #32]
  b .L10361
.L10364:
  ldr r2, [sp, #36]
  tst r1, #8192
  rsb r0, ip, r2
  rsbne r3, r0, sl
  subne r0, r3, #1
  mov r2, r1, asl #19
  and r3, r5, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L10373
  .p2align 2
.L10445:
  .word .L10441
  .word .L10442
  .word .L10443
  .word .L10444
.L10441:
  mov r3, lr, asl #22
  mov r2, r0, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r0, #7
  add r1, r1, r3, asl #3
  ldr r3, [sp, #12]
  mov r2, lr, lsr #8
  cmp r6, r3
  ldr r3, .L11200+24
  add r0, r3, r1, asl #2
  and r1, r2, #240
  blt .L11173
  ldr ip, [sp, #8]
  add r3, r6, r8
  cmp ip, r3
  bhi .L10527
  rsb r7, r6, ip
  cmp r7, #0
  ble .L10373
  ldr lr, [sp, #4]
  movs  r8, r7, lsr #3
  add r2, lr, r6, asl #2
  beq .L10530
  mov r5, r2
  mov lr, r0
  mov ip, #0
.L10532:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L10533
  ands  r3, r4, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #0]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #4]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #24]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  orrne r3, r1, r3
  strne r3, [r5, #28]
.L10533:
  add ip, ip, #1
  cmp ip, r8
  add lr, lr, #32
  add r5, r5, #32
  bne .L10532
  mov r3, r8, asl #5
  add r0, r0, r3
  add r2, r2, r3
.L10530:
  ands  lr, r7, #7
  beq .L10373
  ldr r0, [r0, #0]
  mov ip, #0
.L10552:
  ldr r5, [sp, #28]
  ands  r3, r0, #15
  orr r3, r5, r3
  orr r3, r1, r3
  strne r3, [r2, ip, asl #2]
  add ip, ip, #1
  cmp ip, lr
  mov r0, r0, lsr #4
  bne .L10552
  b .L10373
.L10442:
  mov r3, lr, asl #22
  mov r1, r0, lsr #3
  subs  r2, r8, #8
  mov r3, r3, lsr #22
  submi r2, r8, #1
  add r3, r3, r1, asl #5
  add r3, r3, r2, asr #3
  and r1, r0, #7
  ldr ip, [sp, #12]
  add r1, r1, r3, asl #3
  ldr r3, .L11200+24
  mov r2, lr, lsr #8
  cmp r6, ip
  add r0, r3, r1, asl #2
  and r1, r2, #240
  blt .L11174
  ldr ip, [sp, #8]
  add r3, r6, r8
  cmp ip, r3
  bhi .L10657
  rsb r8, r6, ip
  cmp r8, #0
  ble .L10373
  ldr lr, [sp, #4]
  movs  r7, r8, lsr #3
  add r2, lr, r6, asl #2
  beq .L10660
  mov r5, r2
  mov lr, r0
  mov ip, #0
.L10662:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L10663
  ands  r3, r4, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  orrne r3, r1, r3
  strne r3, [r5, #0]
.L10663:
  add ip, ip, #1
  cmp ip, r7
  sub lr, lr, #32
  add r5, r5, #32
  bne .L10662
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add r2, r2, r7, asl #5
.L10660:
  ands  lr, r8, #7
  beq .L10373
  ldr r0, [r0, #0]
  mov ip, #0
.L10682:
  ldr r5, [sp, #28]
  movs  r3, r0, lsr #28
  orr r3, r5, r3
  orr r3, r1, r3
  strne r3, [r2, ip, asl #2]
  add ip, ip, #1
  cmp ip, lr
  mov r0, r0, asl #4
  bne .L10682
  b .L10373
.L10443:
  mov r2, lr, asl #22
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  and r3, r0, #7
  add r2, r2, r1, asl #5
  add r3, r3, r2, asl #2
  ldr ip, [sp, #12]
  mov r0, r3, asl #3
  ldr r3, .L11200+24
  cmp r6, ip
  add ip, r0, r3
  blt .L11175
  ldr lr, [sp, #8]
  add r3, r6, r8
  cmp lr, r3
  bhi .L10862
  rsb r8, r6, lr
  cmp r8, #0
  ble .L10373
  ldr r1, [sp, #4]
  movs  r7, r8, lsr #3
  add r2, r1, r6, asl #2
  beq .L10865
  ldr r3, .L11200+32
  mov r5, r2
  add r0, r0, r3
  mov lr, ip
  mov r1, #0
.L10867:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L10868
  ands  r3, r4, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r5, #0]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r5, #4]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r5, #8]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r5, #12]
.L10868:
  ldr r4, [r0, #-60]
  cmp r4, #0
  beq .L10877
  ands  r3, r4, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r5, #24]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r5, #28]
.L10877:
  add r1, r1, #1
  cmp r7, r1
  add lr, lr, #64
  add r5, r5, #32
  add r0, r0, #64
  bne .L10867
  add ip, ip, r7, asl #6
  add r2, r2, r7, asl #5
.L10865:
  ands  lr, r8, #7
  beq .L10373
  cmp lr, #3
  ldrls r0, [ip, #0]
  bls .L10900
  ldr r1, [ip, #0]
  cmp r1, #0
  beq .L10890
  ands  r3, r1, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r2, #0]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r2, #4]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r2, #8]
  movs  r3, r1, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r2, #12]
.L10890:
  subs  lr, lr, #4
  ldr r0, [ip, #4]
  addne r2, r2, #16
  beq .L10373
.L10900:
  mov r1, #0
.L10901:
  ldr ip, [sp, #28]
  ands  r3, r0, #255
  orr r3, ip, r3
  strne r3, [r2, r1, asl #2]
  add r1, r1, #1
  cmp lr, r1
  mov r0, r0, lsr #8
  bhi .L10901
  b .L10373
.L10444:
  subs  r2, r8, #8
  submi r2, r8, #1
  mov r3, r0, lsr #3
  mov r2, r2, asr #3
  mov r1, lr, asl #22
  add r2, r2, r3, asl #4
  mov r1, r1, lsr #22
  and r3, r0, #7
  add r1, r1, r2, asl #1
  add r3, r3, r1, asl #2
  ldr ip, [sp, #12]
  mov r0, r3, asl #3
  ldr r3, .L11200+24
  cmp r6, ip
  add ip, r0, r3
  blt .L11176
  ldr lr, [sp, #8]
  add r3, r6, r8
  cmp r3, lr
  bcc .L11082
  rsb r8, r6, lr
  cmp r8, #0
  ble .L10373
  ldr r1, [sp, #4]
  movs  r7, r8, lsr #3
  add r6, r1, r6, asl #2
  beq .L11085
  ldr r3, .L11200+28
  mov r5, r6
  add r0, r0, r3
  mov lr, ip
  mov r1, #0
.L11087:
  ldr r4, [r0, #68]
  cmp r4, #0
  beq .L11088
  ands  r3, r4, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r5, #0]
.L11088:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L11097
  ands  r3, r4, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r5, #20]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r5, #16]
.L11097:
  add r1, r1, #1
  cmp r1, r7
  sub lr, lr, #64
  add r5, r5, #32
  sub r0, r0, #64
  bne .L11087
  rsb r3, r7, r7, asl #26
  add ip, ip, r3, asl #6
  add r6, r6, r7, asl #5
.L11085:
  ands  r0, r8, #7
  beq .L10373
  cmp r0, #3
  ldrls r2, [ip, #4]
  bls .L11120
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L11110
  ands  r3, r2, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r6, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r6, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r6, #4]
  movs  r3, r2, lsr #24
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r6, #0]
.L11110:
  subs  r0, r0, #4
  ldr r2, [ip, #0]
  addne r6, r6, #16
  beq .L10373
.L11120:
  mov r1, #0
.L11121:
  ldr r4, [sp, #28]
  movs  r3, r2, lsr #24
  orr r3, r4, r3
  strne r3, [r6, r1, asl #2]
  add r1, r1, #1
  cmp r0, r1
  mov r2, r2, asl #8
  bhi .L11121
  b .L10373
.L10366:
  mov r3, r1, lsr #4
  ldr r1, .L11200+12
  and r3, r3, #992
  add r3, r3, r1
  tst r4, #512
  ldrh  r4, [r3, #30]
  add r2, r8, r8, lsr #31
  add r1, sl, sl, lsr #31
  str r4, [sp, #24]
  mov r4, r2, asr #1
  ldr r2, [sp, #12]
  mov r5, r1, asr #1
  ldrh  r7, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq fp, r8
  moveq r9, r4
  moveq r0, r5
  movne fp, r8, asl #1
  movne r9, r4, asl #1
  movne r0, r5, asl #1
  cmp r6, r2
  str r3, [sp, #20]
  bge .L10404
  rsb r2, r6, r2
  rsb fp, r2, fp
  cmp fp, #0
  ble .L10373
  ldr r6, [sp, #12]
  rsb r9, r2, r9
.L10404:
  ldr r2, [sp, #8]
  add r3, r6, fp
  cmp r3, r2
  blt .L10407
  rsb fp, r6, r2
  cmp fp, #0
  ble .L10373
.L10407:
  add ip, ip, r0
  mov r3, r7, asl #16
  mov r2, r1, asl #16
  ldr r0, [sp, #20]
  ldr r7, [sp, #24]
  mov r3, r3, asr #16
  mov r2, r2, asr #16
  cmp r0, #0
  str r3, [sp, #56]
  mov r0, lr, lsr #8
  str r2, [sp, #60]
  ldr r3, [sp, #36]
  ldr r2, [sp, #4]
  mov r1, r7, asl #16
  mov r4, r4, asl #8
  and r0, r0, #240
  str r4, [sp, #72]
  mov r1, r1, asr #16
  mov r4, r5, asl #8
  add r7, r2, r6, asl #2
  rsb ip, ip, r3
  str r0, [sp, #88]
  bne .L10409
  mla r3, ip, r1, r4
  mov r1, r3, asr #8
  cmp r1, sl
  bcs .L10373
  mov r3, lr, asl #22
  mov r2, r1, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #3
  ldr r3, .L11200+24
  cmp fp, #0
  add r1, r3, r1, asl #2
  ble .L10373
  ldr r3, [sp, #60]
  ldr r2, [sp, #56]
  mul r3, ip, r3
  mul r2, r9, r2
  ldr r4, [sp, #72]
  rsb r3, r2, r3
  add r0, r4, r3
  mov r4, r0, asr #8
  cmp r4, r8
  ldrcs r5, [sp, #20]
  bcs .L10415
  b .L11197
.L10416:
  cmp r4, r8
  bcc .L11162
.L10415:
  ldr r6, [sp, #56]
  add r5, r5, #1
  add r0, r0, r6
  cmp fp, r5
  mov r4, r0, asr #8
  add r7, r7, #4
  bne .L10416
  ldr ip, [sp, #32]
  ldr lr, [sp, #40]
  add ip, ip, #1
  cmp ip, lr
  str ip, [sp, #32]
  bne .L11178
.L11146:
  add sp, sp, #96
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L10377:
  mov r3, lr, asl #22
  ldr r2, .L11200+24
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  cmp r9, #0
  str r3, [sp, #84]
  ble .L10373
  mov r3, fp, asl #16
  mul r2, r0, r1
  mov fp, r3, asr #16
  ldr r6, [sp, #48]
  mul r3, r0, ip
  ldr r1, [sp, #52]
  ldr r0, [sp, #52]
  mul r1, fp, r1
  mul r0, r6, r0
  ldr ip, [sp, #76]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r5, ip, r3
  add lr, r4, r2
  mov ip, r5, asr #8
  mov r4, lr, asr #8
  cmp ip, r8
  cmpcc r4, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L10393
  b .L11198
.L10394:
  cmp ip, r8
  cmpcc r4, sl
  bcc .L10395
.L10393:
  ldr r0, [sp, #48]
  add r6, r6, #1
  add r5, r5, r0
  add lr, lr, fp
  cmp r9, r6
  mov ip, r5, asr #8
  mov r4, lr, asr #8
  add r7, r7, #4
  bne .L10394
  b .L10373
.L10409:
  mov r3, lr, asl #22
  ldr r2, .L11200+24
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  cmp fp, #0
  str r3, [sp, #80]
  ble .L10373
  ldr r5, [sp, #20]
  mul r2, ip, r1
  mov r3, r5, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #64]
  ldr r1, [sp, #64]
  ldr r3, [sp, #60]
  ldr r0, [sp, #56]
  mul r3, ip, r3
  mul r1, r9, r1
  mul r0, r9, r0
  ldr r6, [sp, #72]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add lr, r6, r3
  add r5, r4, r2
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  cmp ip, r8
  cmpcc r4, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L10428
  b .L11199
.L10429:
  cmp ip, r8
  cmpcc r4, sl
  bcc .L10431
.L10428:
  ldr ip, [sp, #56]
  ldr r0, [sp, #64]
  add r6, r6, #1
  add lr, lr, ip
  add r5, r5, r0
  cmp fp, r6
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  add r7, r7, #4
  bne .L10429
  b .L10373
.L11181:
  mov r3, ip, asr #1
  ldr r1, [sp, #80]
  and r3, r3, #3
  and r0, r4, #7
  str r3, [sp, #0]
  ldr r3, [sp, #80]
  add r0, r1, r0, asl #2
  and r1, r4, #7
  mov r2, ip, asr #1
  add r1, r3, r1, asl #2
  mov r3, r4, asr #3
  and r9, r2, #3
  mov r3, r3, asl #10
  mov r2, ip, asr #3
  tst ip, #1
  add r3, r3, r2, asl #5
  add r2, r0, r3
  movne r4, r9
  add r0, r1, r3
  ldreqb  r3, [r0, r9]  @ zero_extendqisi2
  ldrneb  r3, [r2, r4]  @ zero_extendqisi2
  ldr r2, [sp, #28]
  movne r0, r3, lsr #4
  andeq r0, r3, #15
  cmp r0, #0
  orr r3, r0, r2
  ldr r0, [sp, #88]
  ldr ip, [sp, #56]
  ldr r1, [sp, #64]
  add r6, r6, #1
  orr r3, r0, r3
  strne r3, [r7, #0]
  add lr, lr, ip
  add r5, r5, r1
  cmp fp, r6
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  add r7, r7, #4
  ble .L10373
.L10431:
  cmp r4, sl
  cmpcc ip, r8
  bcc .L11181
  b .L10373
.L10418:
  cmp r4, r8
  bcs .L10373
.L11162:
  mov r3, r4, asr #1
  and sl, r3, #3
  mov r3, r4, asr #3
  mov r3, r3, asl #5
  mov r2, r4, asr #1
  tst r4, #1
  add ip, r3, r1
  and r6, r2, #3
  add r2, r3, r1
  ldreqb  r3, [r2, r6]  @ zero_extendqisi2
  ldrneb  r3, [ip, sl]  @ zero_extendqisi2
  ldr lr, [sp, #28]
  movne r2, r3, lsr #4
  andeq r2, r3, #15
  cmp r2, #0
  orr r3, r2, lr
  ldr r2, [sp, #88]
  ldr ip, [sp, #56]
  add r5, r5, #1
  orr r3, r2, r3
  strne r3, [r7, #0]
  add r0, r0, ip
  cmp fp, r5
  mov r4, r0, asr #8
  add r7, r7, #4
  bgt .L10418
  b .L10373
.L10386:
  cmp r4, r8
  bcs .L10373
.L11160:
  ldr r1, [sp, #48]
  mov r3, r4, asr #3
  add r0, r0, r1
  add r3, lr, r3, asl #6
  and r1, r4, #7
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  ldr r5, [sp, #28]
  cmp r2, #0
  add ip, ip, #1
  orr r3, r5, r2
  strne r3, [r7, #0]
  cmp r9, ip
  mov r4, r0, asr #8
  add r7, r7, #4
  bgt .L10386
  b .L10373
.L11176:
  ldr lr, [sp, #12]
  rsb r1, r6, lr
  rsb lr, r1, r8
  cmp lr, #0
  ble .L10373
  ldr r0, [sp, #8]
  add r3, r6, r8
  cmp r0, r3
  bhi .L10929
  mov r3, r1, lsr #3
  ands  r0, r1, #7
  sub r6, ip, r3, asl #6
  bne .L10931
  ldr r5, [sp, #92]
  ldr r4, [sp, #68]
.L10933:
  movs  lr, r5, lsr #3
  beq .L10991
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L10993:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L10994
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #4]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #0]
.L10994:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L11003
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #28]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #24]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #20]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #16]
.L11003:
  add ip, ip, #1
  cmp ip, lr
  sub r0, r0, #64
  add r1, r1, #32
  bne .L10993
  rsb r3, lr, lr, asl #26
  add r6, r6, r3, asl #6
  add r4, r4, lr, asl #5
.L10991:
  ands  r0, r5, #7
  beq .L10373
  cmp r0, #3
  ldrls r2, [r6, #4]
  bls .L11026
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L11016
  ands  r3, r2, #255
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #28]
  orrne r3, r1, r3
  strne r3, [r4, #4]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r4, #0]
.L11016:
  subs  r0, r0, #4
  ldr r2, [r6, #0]
  addne r4, r4, #16
  beq .L10373
.L11026:
  mov r1, #0
.L11027:
  ldr r5, [sp, #28]
  movs  r3, r2, lsr #24
  orr r3, r5, r3
  strne r3, [r4, r1, asl #2]
  add r1, r1, #1
  cmp r0, r1
  mov r2, r2, asl #8
  bhi .L11027
  b .L10373
.L11201:
  .align  2
.L11200:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word oam_ram
  .word obj_height_table
  .word obj_width_table
  .word vram+65536
  .word vram+65472
  .word vram+65600
.L11175:
  ldr lr, [sp, #12]
  rsb r1, r6, lr
  rsb lr, r1, r8
  cmp lr, #0
  ble .L10373
  ldr r0, [sp, #8]
  add r3, r6, r8
  cmp r0, r3
  bhi .L10709
  mov r3, r1, lsr #3
  ands  r0, r1, #7
  add r6, ip, r3, asl #6
  bne .L10711
  ldr r5, [sp, #92]
  ldr r4, [sp, #68]
.L10713:
  movs  lr, r5, lsr #3
  beq .L10771
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L10773:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L10774
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #12]
.L10774:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L10783
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #28]
.L10783:
  add ip, ip, #1
  cmp lr, ip
  add r0, r0, #64
  add r1, r1, #32
  bne .L10773
  add r6, r6, lr, asl #6
  add r4, r4, lr, asl #5
.L10771:
  ands  r0, r5, #7
  beq .L10373
  cmp r0, #3
  ldrls r1, [r6, #0]
  bls .L10806
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L10796
  ands  r3, r2, #255
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  strne r3, [r4, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r4, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #28]
  orrne r3, r1, r3
  strne r3, [r4, #8]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r4, #12]
.L10796:
  subs  r0, r0, #4
  ldr r1, [r6, #4]
  addne r4, r4, #16
  beq .L10373
.L10806:
  mov r2, #0
.L10807:
  ldr r5, [sp, #28]
  ands  r3, r1, #255
  orr r3, r5, r3
  strne r3, [r4, r2, asl #2]
  add r2, r2, #1
  cmp r0, r2
  mov r1, r1, lsr #8
  bhi .L10807
  b .L10373
.L11174:
  rsb r4, r6, ip
  rsb ip, r4, r8
  cmp ip, #0
  ble .L10373
  ldr lr, [sp, #8]
  add r3, r6, r8
  cmp lr, r3
  bhi .L10579
  mov r3, r4, lsr #3
  ands  lr, r4, #7
  sub r0, r0, r3, asl #5
  bne .L10581
  ldr r2, [sp, #92]
  ldr ip, [sp, #68]
.L10583:
  movs  r7, r2, lsr #3
  beq .L10600
  mov r5, ip
  mov lr, r0
  mov r6, #0
.L10602:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L10603
  ands  r3, r4, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  orrne r3, r1, r3
  strne r3, [r5, #0]
.L10603:
  add r6, r6, #1
  cmp r6, r7
  sub lr, lr, #32
  add r5, r5, #32
  bne .L10602
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add ip, ip, r7, asl #5
.L10600:
  ands  lr, r2, #7
  beq .L10373
  ldr r0, [r0, #0]
  mov r2, #0
.L10622:
  ldr r5, [sp, #28]
  movs  r3, r0, lsr #28
  orr r3, r5, r3
  orr r3, r1, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r2, lr
  mov r0, r0, asl #4
  bne .L10622
  b .L10373
.L11173:
  ldr r5, [sp, #12]
  rsb r4, r6, r5
  rsb r5, r4, r8
  cmp r5, #0
  ble .L10373
  add r3, r6, r8
  ldr r6, [sp, #8]
  cmp r6, r3
  bhi .L10449
  mov r3, r4, lsr #3
  mov r2, r3, asl #5
  ands  r3, r4, #7
  add r5, r0, r2
  bne .L10451
  ldr r7, [sp, #92]
  ldr r6, [sp, #68]
.L10453:
  movs  r4, r7, lsr #3
  beq .L10470
  mov ip, r6
  mov r0, r5
  mov lr, #0
.L10472:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L10473
  ands  r3, r2, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #24]
  movs  r3, r2, lsr #28
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r1, r3
  strne r3, [ip, #28]
.L10473:
  add lr, lr, #1
  cmp r4, lr
  add r0, r0, #32
  add ip, ip, #32
  bne .L10472
  mov r3, r4, asl #5
  add r5, r5, r3
  add r6, r6, r3
.L10470:
  ands  ip, r7, #7
  beq .L10373
  ldr r2, [r5, #0]
  mov r0, #0
.L10492:
  ldr r4, [sp, #28]
  ands  r3, r2, #15
  orr r3, r4, r3
  orr r3, r1, r3
  strne r3, [r6, r0, asl #2]
  add r0, r0, #1
  cmp r0, ip
  mov r2, r2, lsr #4
  bne .L10492
  b .L10373
.L11198:
  mov r6, #0
.L10395:
  cmp r4, sl
  movcc r3, #0
  movcs r3, #1
  cmp r8, ip
  orrls r3, r3, #1
  cmp r3, #0
  beq .L11161
  b .L10373
.L10396:
  cmp r4, sl
  cmpcc ip, r8
  bcs .L10373
.L11161:
  ldr r1, [sp, #48]
  and r3, r4, #7
  mov r2, ip, asr #3
  mov r3, r3, asl #3
  add r5, r5, r1
  add r3, r3, r2, asl #6
  mov r1, r4, asr #3
  ldr r2, [sp, #84]
  add r3, r3, r1, asl #10
  and r0, ip, #7
  add r3, r3, r2
  ldrb  r2, [r3, r0]  @ zero_extendqisi2
  ldr r0, [sp, #28]
  cmp r2, #0
  add r6, r6, #1
  orr r3, r0, r2
  strne r3, [r7, #0]
  add lr, lr, fp
  cmp r9, r6
  mov r4, lr, asr #8
  mov ip, r5, asr #8
  add r7, r7, #4
  bgt .L10396
  b .L10373
.L10657:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  lr, r3, asr #3
  beq .L10373
  ldr r7, [sp, #4]
  mov ip, #0
  add r2, r7, r6, asl #2
  b .L10687
.L11182:
  sub r0, r0, #32
  add r2, r2, #32
.L10687:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L10688
  ands  r3, r4, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r2, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r1, r3
  strne r3, [r2, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r2, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r2, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r2, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r1, r3
  strne r3, [r2, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r2, #4]
  movs  r3, r4, lsr #28
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r2, #0]
.L10688:
  add ip, ip, #1
  cmp lr, ip
  bne .L11182
  b .L10373
.L11082:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  lr, r3, asr #3
  beq .L10373
  ldr r5, [sp, #4]
  ldr r3, .L11200+28
  add r2, r5, r6, asl #2
  add r0, r0, r3
  mov r1, #0
  b .L11126
.L11183:
  sub ip, ip, #64
  add r2, r2, #32
.L11126:
  ldr r4, [r0, #68]
  cmp r4, #0
  beq .L11127
  ands  r3, r4, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r2, #12]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r2, #8]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r2, #4]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r2, #0]
.L11127:
  ldr r4, [ip, #0]
  cmp r4, #0
  beq .L11136
  ands  r3, r4, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r2, #28]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r2, #24]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r2, #20]
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r2, #16]
.L11136:
  add r1, r1, #1
  cmp lr, r1
  sub r0, r0, #64
  bne .L11183
  b .L10373
.L10527:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  lr, r3, asr #3
  beq .L10373
  ldr r7, [sp, #4]
  mov ip, #0
  add r2, r7, r6, asl #2
  b .L10557
.L11184:
  add r0, r0, #32
  add r2, r2, #32
.L10557:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L10558
  ands  r3, r4, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r2, #0]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r1, r3
  strne r3, [r2, #4]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r2, #8]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r2, #12]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r2, #16]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r1, r3
  strne r3, [r2, #20]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r2, #24]
  movs  r3, r4, lsr #28
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r2, #28]
.L10558:
  add ip, ip, #1
  cmp lr, ip
  bne .L11184
  b .L10373
.L10862:
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  lr, r3, asr #3
  beq .L10373
  ldr r1, [sp, #4]
  ldr r3, .L11200+32
  add r2, r1, r6, asl #2
  add r0, r0, r3
  mov r1, #0
  b .L10906
.L11185:
  add ip, ip, #64
  add r2, r2, #32
.L10906:
  ldr r4, [ip, #0]
  cmp r4, #0
  beq .L10907
  ands  r3, r4, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r2, #0]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r2, #4]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r2, #8]
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r2, #12]
.L10907:
  ldr r4, [r0, #-60]
  cmp r4, #0
  beq .L10916
  ands  r3, r4, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r2, #16]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r2, #20]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r2, #24]
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r2, #28]
.L10916:
  add r1, r1, #1
  cmp lr, r1
  add r0, r0, #64
  bne .L11185
  b .L10373
.L10709:
  mov r3, r1, lsr #3
  ands  r2, r1, #7
  add r0, ip, r3, asl #6
  ldreq r1, [sp, #68]
  beq .L10813
  cmp r2, #3
  rsb ip, r2, #8
  bhi .L11186
  subs  r4, ip, #4
  ldr r1, [r0, #0]
  ldreq r1, [sp, #68]
  beq .L10826
  mov r3, r2, asl #3
  mov r2, r1, lsr r3
  mov r1, #0
.L10827:
  ands  r3, r2, #255
  ldr r5, [sp, #28]
  ldrne r6, [sp, #68]
  orr r3, r5, r3
  strne r3, [r6, r1, asl #2]
  add r1, r1, #1
  cmp r1, r4
  mov r2, r2, lsr #8
  bne .L10827
  ldr r7, [sp, #68]
  add r3, r7, ip, asl #2
  sub r1, r3, #16
.L10826:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L10832
  ands  r3, r2, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #12]
.L10832:
  add r1, r1, #16
.L10818:
  add r0, r0, #64
.L10813:
  movs  lr, lr, lsr #3
  beq .L10373
  mov ip, #0
  b .L10842
.L11187:
  add r0, r0, #64
  add r1, r1, #32
.L10842:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L10843
  ands  r3, r2, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r1, #12]
.L10843:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L10852
  ands  r3, r2, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #28]
.L10852:
  add ip, ip, #1
  cmp lr, ip
  bne .L11187
  b .L10373
.L10579:
  ands  r2, r4, #7
  mov r3, r4, lsr #3
  sub r0, r0, r3, asl #5
  ldreq r5, [sp, #68]
  beq .L10628
  rsbs  r5, r2, #8
  ldr lr, [r0, #0]
  ldreq r5, [sp, #68]
  beq .L10631
  mov r3, r2, asl #2
  mov r4, lr, asl r3
  mov lr, #0
.L10632:
  ldr r6, [sp, #28]
  movs  r3, r4, lsr #28
  ldrne r7, [sp, #68]
  orr r3, r6, r3
  orr r3, r1, r3
  strne r3, [r7, lr, asl #2]
  add lr, lr, #1
  cmp r5, lr
  mov r4, r4, asl #4
  bne .L10632
  ldr r8, [sp, #68]
  add r5, r8, r5, asl #2
.L10631:
  sub r0, r0, #32
.L10628:
  movs  ip, ip, lsr #3
  beq .L10373
  mov r2, #0
  b .L10638
.L11188:
  sub r0, r0, #32
  add r5, r5, #32
.L10638:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L10639
  ands  r3, r4, #15
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  orrne r3, r1, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  orrne r3, r1, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #28
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [r5, #0]
.L10639:
  add r2, r2, #1
  cmp r2, ip
  bne .L11188
  b .L10373
.L10929:
  ands  r0, r1, #7
  mov r3, r1, lsr #3
  sub r2, ip, r3, asl #6
  ldreq r0, [sp, #68]
  beq .L11033
  cmp r0, #3
  rsb ip, r0, #8
  bhi .L11189
  subs  r4, ip, #4
  ldr r1, [r2, #4]
  ldreq r0, [sp, #68]
  beq .L11046
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r0, #0
.L11047:
  movs  r3, r1, lsr #24
  ldr r5, [sp, #28]
  ldrne r6, [sp, #68]
  orr r3, r5, r3
  strne r3, [r6, r0, asl #2]
  add r0, r0, #1
  cmp r4, r0
  mov r1, r1, asl #8
  bne .L11047
  ldr r7, [sp, #68]
  add r3, r7, ip, asl #2
  sub r0, r3, #16
.L11046:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L11052
  ands  r3, r1, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r0, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  strne r3, [r0, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r0, #4]
  movs  r3, r1, lsr #24
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r0, #0]
.L11052:
  add r0, r0, #16
.L11038:
  sub r2, r2, #64
.L11033:
  movs  lr, lr, lsr #3
  beq .L10373
  mov ip, #0
  b .L11062
.L11190:
  sub r2, r2, #64
  add r0, r0, #32
.L11062:
  ldr r1, [r2, #4]
  cmp r1, #0
  beq .L11063
  ands  r3, r1, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r0, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r0, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r0, #4]
  movs  r3, r1, lsr #24
  ldrne r1, [sp, #28]
  orrne r3, r1, r3
  strne r3, [r0, #0]
.L11063:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L11072
  ands  r3, r1, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r0, #28]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r0, #24]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  strne r3, [r0, #20]
  movs  r3, r1, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r0, #16]
.L11072:
  add ip, ip, #1
  cmp ip, lr
  bne .L11190
  b .L10373
.L10449:
  mov r3, r4, lsr #3
  mov r2, r3, asl #5
  ands  r3, r4, #7
  add lr, r0, r2
  ldreq ip, [sp, #68]
  beq .L10498
  rsbs  r4, r3, #8
  ldr r0, [r0, r2]
  ldreq ip, [sp, #68]
  beq .L10501
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  mov r2, #0
.L10502:
  ldr r6, [sp, #28]
  ands  r3, r0, #15
  ldrne r7, [sp, #68]
  orr r3, r6, r3
  orr r3, r1, r3
  strne r3, [r7, r2, asl #2]
  add r2, r2, #1
  cmp r2, r4
  mov r0, r0, lsr #4
  bne .L10502
  ldr r8, [sp, #68]
  add ip, r8, r4, asl #2
.L10501:
  add lr, lr, #32
.L10498:
  movs  r4, r5, lsr #3
  beq .L10373
  mov r0, #0
  b .L10508
.L11191:
  add lr, lr, #32
  add ip, ip, #32
.L10508:
  ldr r2, [lr, #0]
  cmp r2, #0
  beq .L10509
  ands  r3, r2, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r1, r3
  strne r3, [ip, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [ip, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [ip, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r1, r3
  strne r3, [ip, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r6, [sp, #28]
  orrne r3, r6, r3
  orrne r3, r1, r3
  strne r3, [ip, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r1, r3
  strne r3, [ip, #24]
  movs  r3, r2, lsr #28
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r1, r3
  strne r3, [ip, #28]
.L10509:
  add r0, r0, #1
  cmp r0, r4
  bne .L11191
  b .L10373
.L10711:
  ldr r1, [sp, #92]
  rsb ip, r0, #8
  cmp r1, ip
  blt .L11192
  cmp r0, #3
  bls .L10744
  cmp ip, #0
  ldr r2, [r6, #4]
  ldreq r4, [sp, #68]
  beq .L10748
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L10749:
  ands  r3, r1, #255
  ldr r8, [sp, #28]
  ldrne lr, [sp, #68]
  orr r3, r8, r3
  strne r3, [lr, r2, asl #2]
  add r2, r2, #1
  cmp ip, r2
  mov r1, r1, lsr #8
  bne .L10749
  ldr r0, [sp, #68]
  add r4, r0, ip, asl #2
.L10748:
  ldr r3, [sp, #92]
  add r6, r6, #64
  rsb r5, ip, r3
  b .L10713
.L10581:
  ldr r2, [sp, #92]
  rsb r5, lr, #8
  cmp r2, r5
  blt .L11193
  cmp r5, #0
  ldr r2, [r0, #0]
  ldreq ip, [sp, #68]
  beq .L10594
  mov r3, lr, asl #2
  mov r4, r2, asl r3
  mov lr, #0
.L10595:
  ldr r7, [sp, #28]
  movs  r3, r4, lsr #28
  ldrne r8, [sp, #68]
  orr r3, r7, r3
  orr r3, r1, r3
  strne r3, [r8, lr, asl #2]
  add lr, lr, #1
  cmp r5, lr
  mov r4, r4, asl #4
  bne .L10595
  ldr lr, [sp, #68]
  add ip, lr, r5, asl #2
.L10594:
  ldr r3, [sp, #92]
  sub r0, r0, #32
  rsb r2, r5, r3
  b .L10583
.L10451:
  ldr r7, [sp, #92]
  rsb lr, r3, #8
  cmp r7, lr
  blt .L11194
  cmp lr, #0
  ldr r2, [r5, #0]
  ldreq r6, [sp, #68]
  beq .L10464
  mov r3, r3, asl #2
  mov r2, r2, lsr r3
  mov r0, #0
.L10465:
  ldr r4, [sp, #28]
  ands  r3, r2, #15
  ldrne r6, [sp, #68]
  orr r3, r4, r3
  orr r3, r1, r3
  strne r3, [r6, r0, asl #2]
  add r0, r0, #1
  cmp lr, r0
  mov r2, r2, lsr #4
  bne .L10465
  ldr r7, [sp, #68]
  add r6, r7, lr, asl #2
.L10464:
  ldr r8, [sp, #92]
  add r5, r5, #32
  rsb r7, lr, r8
  b .L10453
.L10931:
  ldr r1, [sp, #92]
  rsb ip, r0, #8
  cmp r1, ip
  blt .L11195
  cmp r0, #3
  bls .L10964
  cmp ip, #0
  ldr r2, [r6, #0]
  ldreq r4, [sp, #68]
  beq .L10968
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L10969:
  movs  r3, r2, lsr #24
  ldr r8, [sp, #28]
  ldrne lr, [sp, #68]
  orr r3, r8, r3
  strne r3, [lr, r1, asl #2]
  add r1, r1, #1
  cmp ip, r1
  mov r2, r2, asl #8
  bne .L10969
  ldr r0, [sp, #68]
  add r4, r0, ip, asl #2
.L10968:
  ldr r3, [sp, #92]
  sub r6, r6, #64
  rsb r5, ip, r3
  b .L10933
.L11195:
  cmp r1, #0
  ble .L10373
  cmp r0, #3
  bls .L10937
  ldr r2, [r6, #0]
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L10940:
  movs  r3, r2, lsr #24
  ldr r4, [sp, #28]
  ldrne r5, [sp, #68]
  orr r3, r4, r3
  ldr r6, [sp, #92]
  strne r3, [r5, r1, asl #2]
  add r1, r1, #1
  cmp r6, r1
  mov r2, r2, asl #8
  bne .L10940
  b .L10373
.L11194:
  cmp r7, #0
  ble .L10373
  ldr r2, [r0, r2]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  mov r2, #0
.L10458:
  ldr r8, [sp, #28]
  ands  r3, r0, #15
  ldrne ip, [sp, #68]
  orr r3, r8, r3
  orr r3, r1, r3
  ldr lr, [sp, #92]
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp lr, r2
  mov r0, r0, lsr #4
  bne .L10458
  b .L10373
.L11193:
  cmp r2, #0
  ble .L10373
  ldr r2, [r0, #0]
  mov r3, lr, asl #2
  mov r0, r2, asl r3
  mov r2, #0
.L10588:
  ldr r4, [sp, #28]
  movs  r3, r0, lsr #28
  ldrne r5, [sp, #68]
  orr r3, r4, r3
  orr r3, r1, r3
  ldr r6, [sp, #92]
  strne r3, [r5, r2, asl #2]
  add r2, r2, #1
  cmp r6, r2
  mov r0, r0, asl #4
  bne .L10588
  b .L10373
.L11189:
  cmp ip, #0
  ldr r1, [r2, #0]
  ldreq r0, [sp, #68]
  beq .L11038
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r1, r1, asl r3
  mov r0, #0
.L11039:
  movs  r3, r1, lsr #24
  ldr r6, [sp, #28]
  ldrne r7, [sp, #68]
  orr r3, r6, r3
  strne r3, [r7, r0, asl #2]
  add r0, r0, #1
  cmp r0, ip
  mov r1, r1, asl #8
  bne .L11039
  ldr r8, [sp, #68]
  sub r2, r2, #64
  add r0, r8, ip, asl #2
  b .L11033
.L11186:
  cmp ip, #0
  ldr r1, [r0, #4]
  ldreq r1, [sp, #68]
  beq .L10818
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r2, r1, lsr r3
  mov r1, #0
.L10819:
  ands  r3, r2, #255
  ldr r6, [sp, #28]
  ldrne r7, [sp, #68]
  orr r3, r6, r3
  strne r3, [r7, r1, asl #2]
  add r1, r1, #1
  cmp r1, ip
  mov r2, r2, lsr #8
  bne .L10819
  ldr r8, [sp, #68]
  add r0, r0, #64
  add r1, r8, ip, asl #2
  b .L10813
.L11192:
  cmp r1, #0
  ble .L10373
  cmp r0, #3
  bls .L10717
  ldr r2, [r6, #4]
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L10720:
  ands  r3, r1, #255
  ldr r4, [sp, #28]
  ldrne r5, [sp, #68]
  orr r3, r4, r3
  ldr r6, [sp, #92]
  strne r3, [r5, r2, asl #2]
  add r2, r2, #1
  cmp r6, r2
  mov r1, r1, lsr #8
  bne .L10720
  b .L10373
.L11199:
  mov r6, #0
  b .L10431
.L10964:
  subs  lr, ip, #4
  ldr r2, [r6, #4]
  ldreq r1, [sp, #68]
  beq .L10976
  mov r3, r0, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L10977:
  movs  r3, r2, lsr #24
  ldr r4, [sp, #28]
  ldrne r5, [sp, #68]
  orr r3, r4, r3
  strne r3, [r5, r1, asl #2]
  add r1, r1, #1
  cmp lr, r1
  mov r2, r2, asl #8
  bne .L10977
  ldr r7, [sp, #68]
  add r3, r7, ip, asl #2
  sub r1, r3, #16
.L10976:
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L10982
  ands  r3, r2, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r0, [sp, #28]
  orrne r3, r0, r3
  strne r3, [r1, #4]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r1, #0]
.L10982:
  add r4, r1, #16
  b .L10968
.L10744:
  subs  lr, ip, #4
  ldr r2, [r6, #0]
  ldreq r1, [sp, #68]
  beq .L10756
  mov r3, r0, asl #3
  mov r1, r2, lsr r3
  mov r2, #0
.L10757:
  ands  r3, r1, #255
  ldr r4, [sp, #28]
  ldrne r5, [sp, #68]
  orr r3, r4, r3
  strne r3, [r5, r2, asl #2]
  add r2, r2, #1
  cmp r2, lr
  mov r1, r1, lsr #8
  bne .L10757
  ldr r7, [sp, #68]
  add r3, r7, ip, asl #2
  sub r1, r3, #16
.L10756:
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L10762
  ands  r3, r2, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r0, [sp, #28]
  orrne r3, r0, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r1, #12]
.L10762:
  add r4, r1, #16
  b .L10748
.L11197:
  ldr r5, [sp, #20]
  b .L11162
.L11196:
  mov ip, fp
  b .L11160
.L10937:
  ldr r7, [sp, #92]
  mov r3, r0, asl #3
  ldr r1, [r6, #4]
  add r2, r7, r0
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L10944
  cmp r7, #0
  movne r2, #0
  beq .L10373
.L10960:
  movs  r3, r1, lsr #24
  ldr r5, [sp, #28]
  ldrne r6, [sp, #68]
  orr r3, r5, r3
  ldr r7, [sp, #92]
  strne r3, [r6, r2, asl #2]
  add r2, r2, #1
  cmp r7, r2
  mov r1, r1, asl #8
  bne .L10960
  b .L10373
.L10717:
  ldr r7, [sp, #92]
  ldr r3, [r6, #0]
  add r2, r7, r0
  cmp r2, #4
  mov r1, r0, asl #3
  mov r2, r3, lsr r1
  bhi .L10724
  cmp r7, #0
  movne r1, #0
  beq .L10373
.L10740:
  ands  r3, r2, #255
  ldr r5, [sp, #28]
  ldrne r6, [sp, #68]
  orr r3, r5, r3
  ldr r7, [sp, #92]
  strne r3, [r6, r1, asl #2]
  add r1, r1, #1
  cmp r7, r1
  mov r2, r2, lsr #8
  bne .L10740
  b .L10373
.L10944:
  rsbs  r0, r0, #4
  ldreq ip, [sp, #68]
  beq .L10949
  mov r2, #0
.L10950:
  movs  r3, r1, lsr #24
  ldr r8, [sp, #28]
  ldrne ip, [sp, #68]
  orr r3, r8, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r2, r0
  mov r1, r1, asl #8
  bne .L10950
  ldr lr, [sp, #68]
  add ip, lr, r0, asl #2
.L10949:
  ldr r1, [sp, #92]
  ldr r2, [r6, #0]
  subs  r0, r1, r0
  beq .L10373
  mov r1, #0
.L10956:
  ldr r4, [sp, #28]
  movs  r3, r2, lsr #24
  orr r3, r4, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, asl #8
  bne .L10956
  b .L10373
.L10724:
  rsbs  r0, r0, #4
  ldreq ip, [sp, #68]
  beq .L10729
  mov r1, #0
.L10730:
  ands  r3, r2, #255
  ldr r8, [sp, #28]
  ldrne ip, [sp, #68]
  orr r3, r8, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, lsr #8
  bne .L10730
  ldr lr, [sp, #68]
  add ip, lr, r0, asl #2
.L10729:
  ldr r1, [sp, #92]
  ldr r2, [r6, #4]
  subs  r0, r1, r0
  beq .L10373
  mov r1, #0
.L10736:
  ldr r4, [sp, #28]
  ands  r3, r2, #255
  orr r3, r4, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, lsr #8
  bne .L10736
  b .L10373
  .size render_scanline_obj_color32_2D, .-render_scanline_obj_color32_2D
  .align  2
  .global render_scanline_obj_alpha_obj_1D
  .type render_scanline_obj_alpha_obj_1D, %function
render_scanline_obj_alpha_obj_1D:
  @ args = 0, pretend = 0, frame = 96
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L12434
  sub sp, sp, #96
  ldrh  lr, [r5, #80]
  mov r4, r0
  mov ip, lr, lsr #11
  and ip, ip, #2
  mov lr, lr, asl #27
  orr ip, ip, lr, lsr #31
  mov ip, ip, asl #9
  orr ip, ip, #256
  tst ip, #512
  str r1, [sp, #8]
  str ip, [sp, #20]
  str r2, [sp, #4]
  str r3, [sp, #0]
  beq .L12407
  ldrh  r5, [r5, #6]
  add r3, r0, r0, asl #2
  ldr r2, .L12434+4
  add r3, r5, r3, asl #5
  ldr r2, [r2, r3, asl #2]
  str r5, [sp, #32]
  str r2, [sp, #36]
  cmp r2, #0
  ldr r2, .L12434+8
  add r3, r2, r3, asl #7
  str r3, [sp, #40]
  beq .L12381
  ldr r1, [sp, #8]
  ldmia sp, {r0, r2}  @ phole ldm
  mov r3, #0
  add r0, r0, r1, asl #2
  rsb r2, r1, r2
  str r0, [sp, #68]
  str r2, [sp, #92]
  str r3, [sp, #24]
  mov r4, r3
.L11207:
  ldr r5, [sp, #40]
  ldr r6, .L12434+20
  ldrb  r3, [r4, r5]  @ zero_extendqisi2
  ldr r8, .L12434+12
  mov r3, r3, asl #3
  ldrh  lr, [r3, r6]
  add r3, r3, r6
  ldrh  r4, [r3, #2]
  and r0, lr, #255
  mov r5, lr, lsr #12
  and r2, r5, #12
  cmp r0, #160
  ldrh  r3, [r3, #4]
  ldr sl, .L12434+16
  orr r1, r2, r4, lsr #14
  subgt r0, r0, #256
  mov r2, r4, asl #23
  tst lr, #256
  str r3, [sp, #28]
  mov r6, r2, asr #23
  ldr r7, [r8, r1, asl #2]
  ldr r9, [sl, r1, asl #2]
  beq .L11210
  tst lr, #8192
  beq .L11212
  ldr fp, .L12434+20
  mov r3, r4, lsr #4
  add r2, r7, r7, lsr #31
  and r3, r3, #992
  tst lr, #512
  add r3, r3, fp
  mov lr, r2, asr #1
  add r1, r9, r9, lsr #31
  ldr r2, [sp, #8]
  mov r4, r1, asr #1
  ldrh  sl, [r3, #30]
  ldrh  r5, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq r8, r7
  moveq fp, lr
  moveq ip, r4
  movne r8, r7, asl #1
  movne fp, lr, asl #1
  movne ip, r4, asl #1
  cmp r6, r2
  str r3, [sp, #12]
  bge .L11217
  rsb r2, r6, r2
  rsb r8, r2, r8
  cmp r8, #0
  ble .L11219
  ldr r6, [sp, #8]
  rsb fp, r2, fp
.L11217:
  ldr r2, [sp, #4]
  add r3, r6, r8
  cmp r3, r2
  blt .L11221
  rsb r8, r6, r2
  cmp r8, #0
  ble .L11219
.L11221:
  mov r3, r5, asl #16
  mov r2, r1, asl #16
  ldr r5, [sp, #12]
  mov r1, sl, asl #16
  mov lr, lr, asl #8
  add r0, r0, ip
  str lr, [sp, #80]
  mov ip, r1, asr #16
  ldr lr, [sp, #0]
  ldr r1, [sp, #32]
  cmp r5, #0
  mov r2, r2, asr #16
  add r5, lr, r6, asl #2
  mov sl, r3, asr #16
  str r2, [sp, #44]
  mov r4, r4, asl #8
  rsb lr, r0, r1
  bne .L11223
  mla r3, lr, ip, r4
  mov r0, r3, asr #8
  cmp r0, r9
  bcs .L11219
  cmp r7, #0
  ldr r4, [sp, #28]
  add r3, r7, #7
  movge r3, r7
  mov r3, r3, asr #3
  mov r2, r4, asl #22
  mov r3, r3, asl #1
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L12434+24
  add r0, r0, ip, asl #2
  cmp r8, #0
  add r6, r3, r0, asl #3
  ble .L11219
  ldr r3, [sp, #44]
  mul r2, sl, fp
  mul r3, lr, r3
  ldr r9, [sp, #80]
  rsb r3, r2, r3
  add r0, r9, r3
  mov r2, r0, asr #8
  cmp r7, r2
  ldrls lr, [sp, #12]
  bls .L11229
  b .L12431
.L11230:
  cmp r7, r2
  bhi .L12395
.L11229:
  add lr, lr, #1
  add r0, r0, sl
  cmp r8, lr
  mov r2, r0, asr #8
  add r5, r5, #4
  bne .L11230
.L11219:
  ldr r9, [sp, #24]
  ldr sl, [sp, #36]
  add r9, r9, #1
  cmp r9, sl
  str r9, [sp, #24]
  beq .L12381
  ldr r4, [sp, #24]
  b .L11207
.L11210:
  ldr r1, [sp, #32]
  tst r4, #8192
  rsb ip, r0, r1
  rsbne r3, ip, r9
  subne ip, r3, #1
  mov r2, r4, asl #19
  and r3, r5, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L11219
  .p2align 2
.L11300:
  .word .L11296
  .word .L11297
  .word .L11298
  .word .L11299
.L11296:
  ldr r4, [sp, #28]
  cmp r7, #0
  add r3, r7, #7
  mov r2, r4, asl #22
  movge r3, r7
  mov r5, r3, asr #3
  mov r2, r2, lsr #22
  mov r3, ip, lsr #3
  mla r0, r5, r3, r2
  ldr r8, [sp, #8]
  and r1, ip, #7
  ldr r3, .L12434+24
  add r1, r1, r0, asl #3
  cmp r6, r8
  mov r2, r4, lsr #8
  add r0, r3, r1, asl #2
  and r8, r2, #240
  bge .L11301
  ldr r9, [sp, #8]
  rsb lr, r6, r9
  rsb r5, lr, r7
  cmp r5, #0
  ble .L11219
  ldr sl, [sp, #4]
  add r3, r6, r7
  cmp sl, r3
  bhi .L11304
  mov r3, lr, lsr #3
  mov r1, r3, asl #5
  ands  r3, lr, #7
  add r6, r0, r1
  bne .L11306
  ldr sl, [sp, #92]
  ldr r4, [sp, #68]
.L11308:
  movs  r7, sl, lsr #3
  beq .L11329
  mov r0, r4
  mov lr, r6
  mov r5, #0
.L11331:
  ldr r1, [lr, #0]
  cmp r1, #0
  beq .L11332
  ands  r3, r1, #15
  beq .L11334
  ldr r2, [r0, #0]
  orr ip, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L11334:
  mov r3, r1, lsr #4
  ands  r3, r3, #15
  beq .L11338
  ldr r2, [r0, #4]
  orr ip, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L11338:
  mov r3, r1, lsr #8
  ands  r3, r3, #15
  beq .L11342
  ldr r2, [r0, #8]
  orr ip, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L11342:
  mov r3, r1, lsr #12
  ands  r3, r3, #15
  beq .L11346
  ldr r2, [r0, #12]
  orr ip, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L11346:
  mov r3, r1, lsr #16
  ands  r3, r3, #15
  beq .L11350
  ldr r2, [r0, #16]
  orr ip, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L11350:
  mov r3, r1, lsr #20
  ands  r3, r3, #15
  beq .L11354
  ldr r2, [r0, #20]
  orr ip, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L11354:
  mov r3, r1, lsr #24
  ands  r3, r3, #15
  beq .L11358
  ldr r2, [r0, #24]
  orr ip, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L11358:
  movs  r3, r1, lsr #28
  beq .L11332
  ldr r2, [r0, #28]
  orr r1, r8, r3
  tst r2, #256
  ldrne ip, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r1
  orrne r2, ip, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L11332:
  add r5, r5, #1
  cmp r5, r7
  add lr, lr, #32
  add r0, r0, #32
  bne .L11331
  mov r3, r7, asl #5
  add r6, r6, r3
  add r4, r4, r3
.L11329:
  ands  r5, sl, #7
  beq .L11219
  ldr ip, [r6, #0]
  mov lr, #0
.L11367:
  ands  r3, ip, #15
  beq .L11368
  ldr r1, [r4, #0]
  ldr sl, [sp, #20]
  orr r2, r8, r3
  mov r3, r1, lsr #16
  orr r0, sl, r2
  mov r3, r3, asl #16
  orr r2, sl, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L11368:
  add lr, lr, #1
  cmp r5, lr
  mov ip, ip, lsr #4
  add r4, r4, #4
  bne .L11367
  b .L11219
.L11297:
  ldr r5, [sp, #28]
  cmp r7, #0
  add r3, r7, #7
  mov r2, r5, asl #22
  movge r3, r7
  mov r5, r3, asr #3
  mov r2, r2, lsr #22
  mov r1, ip, lsr #3
  mla r0, r5, r1, r2
  subs  r3, r7, #8
  submi r3, r7, #1
  ldr r8, [sp, #8]
  ldr r9, [sp, #28]
  add r0, r0, r3, asr #3
  and r2, ip, #7
  ldr r3, .L12434+24
  add r2, r2, r0, asl #3
  cmp r6, r8
  mov r1, r9, lsr #8
  add r0, r3, r2, asl #2
  and r8, r1, #240
  bge .L11505
  ldr sl, [sp, #8]
  rsb lr, r6, sl
  rsb sl, lr, r7
  cmp sl, #0
  ble .L11219
  ldr fp, [sp, #4]
  add r3, r6, r7
  cmp fp, r3
  bhi .L11508
  mov r3, lr, lsr #3
  ands  r4, lr, #7
  sub ip, r0, r3, asl #5
  bne .L11510
  ldr sl, [sp, #92]
  ldr r5, [sp, #68]
.L11512:
  movs  r7, sl, lsr #3
  beq .L11533
  mov r0, r5
  mov r4, ip
  mov r6, #0
.L11535:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L11536
  ands  r3, r1, #15
  beq .L11538
  ldr r2, [r0, #28]
  orr lr, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L11538:
  mov r3, r1, lsr #4
  ands  r3, r3, #15
  beq .L11542
  ldr r2, [r0, #24]
  orr lr, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L11542:
  mov r3, r1, lsr #8
  ands  r3, r3, #15
  beq .L11546
  ldr r2, [r0, #20]
  orr lr, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L11546:
  mov r3, r1, lsr #12
  ands  r3, r3, #15
  beq .L11550
  ldr r2, [r0, #16]
  orr lr, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L11550:
  mov r3, r1, lsr #16
  ands  r3, r3, #15
  beq .L11554
  ldr r2, [r0, #12]
  orr lr, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L11554:
  mov r3, r1, lsr #20
  ands  r3, r3, #15
  beq .L11558
  ldr r2, [r0, #8]
  orr lr, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L11558:
  mov r3, r1, lsr #24
  ands  r3, r3, #15
  beq .L11562
  ldr r2, [r0, #4]
  orr lr, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L11562:
  movs  r3, r1, lsr #28
  beq .L11536
  ldr r2, [r0, #0]
  orr r1, r8, r3
  tst r2, #256
  ldrne lr, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r1
  orrne r2, lr, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L11536:
  add r6, r6, #1
  cmp r7, r6
  sub r4, r4, #32
  add r0, r0, #32
  bne .L11535
  rsb r3, r7, r7, asl #27
  add ip, ip, r3, asl #5
  add r5, r5, r7, asl #5
.L11533:
  ands  r4, sl, #7
  beq .L11219
  ldr ip, [ip, #0]
  mov lr, #0
.L11571:
  movs  r3, ip, lsr #28
  beq .L11572
  ldr r1, [r5, #0]
  ldr sl, [sp, #20]
  orr r2, r8, r3
  mov r3, r1, lsr #16
  orr r0, sl, r2
  mov r3, r3, asl #16
  orr r2, sl, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r5, #0]
  streq r2, [r5, #0]
.L11572:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, asl #4
  add r5, r5, #4
  bne .L11571
  b .L11219
.L11298:
  ldr r5, [sp, #28]
  cmp r7, #0
  add r3, r7, #7
  mov r2, ip, lsr #3
  movge r3, r7
  mov r1, r5, asl #22
  mov r4, r3, asr #3
  mov r2, r2, asl #1
  mov r1, r1, lsr #22
  mla r0, r2, r4, r1
  and r3, ip, #7
  add r3, r3, r0, asl #2
  ldr r8, [sp, #8]
  mov r0, r3, asl #3
  ldr r3, .L12434+24
  cmp r6, r8
  add ip, r0, r3
  bge .L11709
  rsb r0, r6, r8
  rsb r8, r0, r7
  cmp r8, #0
  ble .L11219
  ldr r9, [sp, #4]
  add r3, r6, r7
  cmp r9, r3
  bhi .L11712
  mov r3, r0, lsr #3
  ands  lr, r0, #7
  add r7, ip, r3, asl #6
  bne .L11714
  ldr r6, [sp, #92]
  ldr r4, [sp, #68]
.L11716:
  movs  r5, r6, lsr #3
  beq .L11794
  mov r1, r4
  mov ip, r7
  mov lr, #0
.L11796:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L11797
  ands  r0, r2, #255
  beq .L11799
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L11799:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L11803
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L11803:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L11807
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L11807:
  movs  r0, r2, lsr #24
  beq .L11797
  ldr r2, [r1, #12]
  tst r2, #256
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r0
  orrne r2, sl, r0
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L11797:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L11814
  ands  r0, r2, #255
  beq .L11816
  ldr r3, [r1, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L11816:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L11820
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L11820:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L11824
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L11824:
  movs  r2, r2, lsr #24
  beq .L11814
  ldr r3, [r1, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L11814:
  add lr, lr, #1
  cmp lr, r5
  add ip, ip, #64
  add r1, r1, #32
  bne .L11796
  add r7, r7, r5, asl #6
  add r4, r4, r5, asl #5
.L11794:
  ands  r5, r6, #7
  beq .L11219
  cmp r5, #3
  ldrls ip, [r7, #0]
  bls .L11853
  ldr r2, [r7, #0]
  cmp r2, #0
  beq .L11835
  ands  r1, r2, #255
  beq .L11837
  ldr r3, [r4, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne ip, [sp, #20]
  ldreq lr, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, ip, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L11837:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L11841
  ldr r3, [r4, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r0, [sp, #20]
  ldreq r6, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L11841:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L11845
  ldr r3, [r4, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L11845:
  movs  r1, r2, lsr #24
  beq .L11835
  ldr r2, [r4, #12]
  tst r2, #256
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r1
  orrne r2, sl, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L11835:
  subs  r5, r5, #4
  ldr ip, [r7, #4]
  addne r4, r4, #16
  beq .L11219
.L11853:
  mov lr, #0
.L11854:
  ands  r3, ip, #255
  beq .L11855
  ldr r2, [r4, #0]
  ldr r0, [sp, #20]
  tst r2, #256
  orr r1, r0, r3
  orr r0, r0, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [r4, #0]
  streq r1, [r4, #0]
.L11855:
  add lr, lr, #1
  cmp r5, lr
  mov ip, ip, lsr #8
  add r4, r4, #4
  bhi .L11854
  b .L11219
.L12435:
  .align  2
.L12434:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word obj_width_table
  .word obj_height_table
  .word oam_ram
  .word vram+65536
  .word vram+65472
  .word vram+65600
.L11299:
  cmp r7, #0
  add r2, r7, #7
  movge r2, r7
  subs  r3, r7, #8
  submi r3, r7, #1
  mov r5, r2, asr #3
  mov r3, r3, asr #3
  mov r1, ip, lsr #3
  mla r0, r5, r1, r3
  ldr sl, [sp, #28]
  and r3, ip, #7
  mov r2, sl, asl #22
  mov r2, r2, lsr #22
  add r2, r2, r0, asl #1
  add r3, r3, r2, asl #2
  ldr fp, [sp, #8]
  mov r0, r3, asl #3
  ldr r3, .L12434+24
  cmp r6, fp
  add ip, r0, r3
  bge .L12045
  rsb r0, r6, fp
  rsb r8, r0, r7
  cmp r8, #0
  ble .L11219
  ldr lr, [sp, #4]
  add r3, r6, r7
  cmp lr, r3
  bhi .L12048
  mov r3, r0, lsr #3
  ands  lr, r0, #7
  sub r8, ip, r3, asl #6
  bne .L12050
  ldr r7, [sp, #92]
  ldr r4, [sp, #68]
.L12052:
  movs  r6, r7, lsr #3
  beq .L12130
  mov r0, r4
  mov lr, r8
  mov r5, #0
.L12132:
  ldr r2, [lr, #4]
  cmp r2, #0
  beq .L12133
  ands  r1, r2, #255
  beq .L12135
  ldr r3, [r0, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L12135:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L12139
  ldr r3, [r0, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq ip, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L12139:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L12143
  ldr r3, [r0, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L12143:
  movs  r2, r2, lsr #24
  beq .L12133
  ldr r3, [r0, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq ip, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L12133:
  ldr r1, [lr, #0]
  cmp r1, #0
  beq .L12150
  ands  ip, r1, #255
  beq .L12152
  ldr r2, [r0, #28]
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L12152:
  mov r3, r1, lsr #8
  ands  r2, r3, #255
  beq .L12156
  ldr r3, [r0, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq ip, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L12156:
  mov r3, r1, lsr #16
  ands  r2, r3, #255
  beq .L12160
  ldr r3, [r0, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L12160:
  movs  r1, r1, lsr #24
  beq .L12150
  ldr r2, [r0, #16]
  tst r2, #256
  ldrne fp, [sp, #20]
  ldreq ip, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, ip, r1
  orrne r2, fp, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L12150:
  add r5, r5, #1
  cmp r5, r6
  sub lr, lr, #64
  add r0, r0, #32
  bne .L12132
  rsb r3, r6, r6, asl #26
  add r8, r8, r3, asl #6
  add r4, r4, r6, asl #5
.L12130:
  ands  r5, r7, #7
  beq .L11219
  cmp r5, #3
  ldrls ip, [r8, #4]
  bls .L12189
  ldr r2, [r8, #4]
  cmp r2, #0
  beq .L12171
  ands  r1, r2, #255
  beq .L12173
  ldr r3, [r4, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne lr, [sp, #20]
  ldreq r0, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r0, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L12173:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L12177
  ldr r3, [r4, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r7, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L12177:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L12181
  ldr r3, [r4, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L12181:
  movs  r2, r2, lsr #24
  beq .L12171
  ldr r3, [r4, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq ip, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L12171:
  subs  r5, r5, #4
  ldr ip, [r8, #0]
  addne r4, r4, #16
  beq .L11219
.L12189:
  mov lr, #0
.L12190:
  movs  r3, ip, lsr #24
  beq .L12191
  ldr r2, [r4, #0]
  ldr r0, [sp, #20]
  tst r2, #256
  orr r1, r0, r3
  orr r0, r0, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [r4, #0]
  streq r1, [r4, #0]
.L12191:
  add lr, lr, #1
  cmp r5, lr
  mov ip, ip, asl #8
  add r4, r4, #4
  bhi .L12190
  b .L11219
.L11212:
  ldr ip, .L12434+20
  mov r3, r4, lsr #4
  add r2, r7, r7, lsr #31
  and r3, r3, #992
  tst lr, #512
  add r3, r3, ip
  mov lr, r2, asr #1
  add r1, r9, r9, lsr #31
  ldr r2, [sp, #8]
  mov r4, r1, asr #1
  ldrh  sl, [r3, #30]
  ldrh  r8, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq fp, r7
  moveq r5, lr
  moveq ip, r4
  movne fp, r7, asl #1
  movne r5, lr, asl #1
  movne ip, r4, asl #1
  cmp r6, r2
  str r3, [sp, #16]
  bge .L11254
  rsb r2, r6, r2
  rsb fp, r2, fp
  cmp fp, #0
  ble .L11219
  ldr r6, [sp, #8]
  rsb r5, r2, r5
.L11254:
  ldr r2, [sp, #4]
  add r3, r6, fp
  cmp r3, r2
  blt .L11257
  rsb fp, r6, r2
  cmp fp, #0
  ble .L11219
.L11257:
  mov r3, r8, asl #16
  mov r2, r1, asl #16
  ldr r8, [sp, #16]
  mov r1, sl, asl #16
  ldr sl, [sp, #28]
  mov lr, lr, asl #8
  add ip, r0, ip
  cmp r8, #0
  mov r0, sl, lsr #8
  mov r8, r1, asr #16
  str lr, [sp, #88]
  ldr r1, [sp, #32]
  ldr lr, [sp, #0]
  mov r3, r3, asr #16
  mov r2, r2, asr #16
  and r0, r0, #240
  add sl, lr, r6, asl #2
  str r3, [sp, #52]
  str r2, [sp, #56]
  mov r4, r4, asl #8
  rsb lr, ip, r1
  str r0, [sp, #84]
  bne .L11259
  mla r3, lr, r8, r4
  mov r0, r3, asr #8
  cmp r0, r9
  bcs .L11219
  ldr r4, [sp, #28]
  cmp r7, #0
  add r3, r7, #7
  mov r2, r4, asl #22
  movge r3, r7
  mov r3, r3, asr #3
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L12434+24
  add r0, r0, ip, asl #3
  cmp fp, #0
  add r6, r3, r0, asl #2
  ble .L11219
  ldr r3, [sp, #56]
  ldr r2, [sp, #52]
  mul r3, lr, r3
  mul r2, r5, r2
  ldr r5, [sp, #88]
  rsb r3, r2, r3
  add ip, r5, r3
  mov r1, ip, asr #8
  cmp r1, r7
  ldrcc r4, [sp, #16]
  ldrcs r4, [sp, #16]
  bcs .L11266
  b .L12397
.L11267:
  cmp r7, r2
  bhi .L11268
.L11266:
  ldr r8, [sp, #52]
  add r4, r4, #1
  add ip, ip, r8
  cmp fp, r4
  mov r2, ip, asr #8
  add sl, sl, #4
  bne .L11267
  b .L11219
.L12381:
  add sp, sp, #96
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L11223:
  ldr r0, [sp, #28]
  cmp r7, #0
  add r1, r7, #7
  mov r2, r0, asl #22
  movge r1, r7
  ldr r3, .L12434+24
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #6
  cmp r8, #0
  str r2, [sp, #76]
  str r1, [sp, #48]
  ble .L11219
  ldr r1, [sp, #12]
  mul r2, lr, ip
  mov r3, r1, asl #16
  mov r6, r3, asr #16
  ldr r3, [sp, #44]
  mul r1, r6, fp
  mul r0, sl, fp
  mul r3, lr, r3
  ldr fp, [sp, #80]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add ip, fp, r3
  add lr, r4, r2
  mov r1, ip, asr #8
  mov r0, lr, asr #8
  cmp r1, r7
  cmpcc r0, r9
  movcs r3, #0
  movcc r3, #1
  movcs r4, r3
  bcs .L11241
  b .L12432
.L11242:
  cmp r7, r1
  cmphi r9, r0
  bhi .L11244
.L11241:
  add r4, r4, #1
  add ip, ip, sl
  add lr, lr, r6
  cmp r8, r4
  mov r1, ip, asr #8
  mov r0, lr, asr #8
  add r5, r5, #4
  bne .L11242
  b .L11219
.L12410:
  and r3, r0, #7
  mov r2, r1, asr #3
  mov r3, r3, asl #3
  add r3, r3, r2, asl #6
  ldr r2, [sp, #76]
  and r1, r1, #7
  add r3, r3, r2
  mov r2, r0, asr #3
  ldr r0, [sp, #48]
  mla r0, r2, r0, r3
  ldrb  r0, [r0, r1]  @ zero_extendqisi2
  cmp r0, #0
  beq .L11247
  ldr r3, [r5, #0]
  ldr fp, [sp, #20]
  mov r2, r3, lsr #16
  mov r2, r2, asl #16
  orr r2, fp, r2
  orr r1, fp, r3, asl #16
  tst r3, #256
  orr r2, r0, r2
  orr r1, r0, r1
  strne r2, [r5, #0]
  streq r1, [r5, #0]
.L11247:
  add r4, r4, #1
  add ip, ip, sl
  add lr, lr, r6
  cmp r8, r4
  mov r1, ip, asr #8
  mov r0, lr, asr #8
  add r5, r5, #4
  ble .L11219
.L11244:
  cmp r9, r0
  cmphi r7, r1
  bhi .L12410
  b .L11219
.L11259:
  ldr r3, [sp, #28]
  cmp r7, #0
  add r1, r7, #7
  mov r2, r3, asl #22
  movge r1, r7
  ldr r3, .L12434+24
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #5
  cmp fp, #0
  str r2, [sp, #72]
  str r1, [sp, #64]
  ble .L11219
  ldr r6, [sp, #16]
  ldr r0, [sp, #52]
  mov r3, r6, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #60]
  ldr r1, [sp, #60]
  ldr r3, [sp, #56]
  mul r2, lr, r8
  mul r1, r5, r1
  mul r0, r5, r0
  mul r3, lr, r3
  ldr r8, [sp, #88]
  rsb r2, r1, r2
  rsb r3, r0, r3
  add r6, r8, r3
  add r5, r4, r2
  mov r3, r5, asr #8
  mov r4, r6, asr #8
  cmp r4, r7
  cmpcc r3, r9
  movcs r2, #0
  movcc r2, #1
  movcs r8, r2
  bcs .L11281
  b .L12433
.L11282:
  cmp r7, r4
  cmphi r9, r3
  bhi .L11284
.L11281:
  ldr ip, [sp, #52]
  ldr lr, [sp, #60]
  add r8, r8, #1
  add r6, r6, ip
  add r5, r5, lr
  cmp fp, r8
  mov r4, r6, asr #8
  mov r3, r5, asr #8
  add sl, sl, #4
  bne .L11282
  b .L11219
.L12412:
  ldr r2, [sp, #64]
  and r0, r3, #7
  and ip, r3, #7
  mov r3, r3, asr #3
  mul r2, r3, r2
  ldr r3, [sp, #72]
  ldr r1, [sp, #72]
  add ip, r3, ip, asl #2
  mov r3, r4, asr #3
  add r0, r1, r0, asl #2
  mov lr, r4, asr #1
  mov r1, r4, asr #1
  add r2, r2, r3, asl #5
  tst r4, #1
  add r3, r0, r2
  and lr, lr, #3
  add r0, ip, r2
  and r1, r1, #3
  ldreqb  r3, [r0, r1]  @ zero_extendqisi2
  ldrneb  r3, [r3, lr]  @ zero_extendqisi2
  andeq r0, r3, #15
  movne r0, r3, lsr #4
  ldr r4, [sp, #84]
  cmp r0, #0
  orr r0, r0, r4
  beq .L11290
  ldr r2, [sl, #0]
  ldr ip, [sp, #20]
  mov r3, r2, lsr #16
  orr r1, ip, r0
  mov r3, r3, asl #16
  orr r0, ip, r0
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [sl, #0]
  streq r0, [sl, #0]
.L11290:
  ldr lr, [sp, #52]
  ldr r0, [sp, #60]
  add r8, r8, #1
  add r6, r6, lr
  add r5, r5, r0
  cmp fp, r8
  add sl, sl, #4
  mov r4, r6, asr #8
  mov r3, r5, asr #8
  ble .L11219
.L11284:
  cmp r9, r3
  cmphi r7, r4
  bhi .L12412
  b .L11219
.L11269:
  cmp r7, r1
  bls .L11219
.L12397:
  mov r3, r1, asr #1
  and lr, r3, #3
  mov r3, r1, asr #3
  mov r3, r3, asl #5
  mov r2, r1, asr #1
  tst r1, #1
  and r0, r2, #3
  add r1, r3, r6
  add r2, r3, r6
  ldreqb  r3, [r2, r0]  @ zero_extendqisi2
  ldrneb  r3, [r1, lr]  @ zero_extendqisi2
  andeq r2, r3, #15
  movne r2, r3, lsr #4
  ldr r9, [sp, #84]
  cmp r2, #0
  orr r3, r2, r9
  beq .L11274
  ldr r2, [sl, #0]
  ldr lr, [sp, #20]
  tst r2, #256
  orr r1, lr, r3
  orr r0, lr, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r1, r3, r1
  orr r3, r0, r2, asl #16
  strne r1, [sl, #0]
  streq r3, [sl, #0]
.L11274:
  ldr r0, [sp, #52]
  add r4, r4, #1
  add ip, ip, r0
  cmp fp, r4
  add sl, sl, #4
  mov r1, ip, asr #8
  bgt .L11269
  b .L11219
.L11232:
  cmp r7, r2
  bls .L11219
.L12395:
  mov r3, r2, asr #3
  add r3, r6, r3, asl #6
  and r2, r2, #7
  ldrb  ip, [r3, r2]  @ zero_extendqisi2
  cmp ip, #0
  beq .L11234
  ldr r3, [r5, #0]
  ldr fp, [sp, #20]
  mov r2, r3, lsr #16
  mov r2, r2, asl #16
  orr r2, fp, r2
  orr r1, fp, r3, asl #16
  orr r4, ip, r2
  tst r3, #256
  orr r2, ip, r1
  strne r4, [r5, #0]
  streq r2, [r5, #0]
.L11234:
  add lr, lr, #1
  add r0, r0, sl
  cmp r8, lr
  add r5, r5, #4
  mov r2, r0, asr #8
  bgt .L11232
  b .L11219
.L12045:
  add r3, r6, r7
  ldr r7, [sp, #4]
  cmp r3, r7
  bcs .L12413
  cmp r5, #0
  beq .L11219
  ldr r2, [sp, #0]
  ldr r3, .L12434+28
  add r1, r2, r6, asl #2
  add r0, r0, r3
  mov r6, #0
  b .L12345
.L12414:
  sub ip, ip, #64
  add r1, r1, #32
.L12345:
  ldr r2, [r0, #68]
  cmp r2, #0
  beq .L12346
  ands  lr, r2, #255
  beq .L12348
  ldr r3, [r1, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r4, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r7, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L12348:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L12352
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L12352:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L12356
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L12356:
  movs  r2, r2, lsr #24
  beq .L12346
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne lr, [sp, #20]
  ldreq r4, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r4, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L12346:
  ldr lr, [ip, #0]
  cmp lr, #0
  beq .L12363
  ands  r4, lr, #255
  beq .L12365
  ldr r2, [r1, #28]
  tst r2, #256
  ldrne r7, [sp, #20]
  ldreq r8, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, r4
  orrne r2, r7, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L12365:
  mov r3, lr, lsr #8
  ands  r2, r3, #255
  beq .L12369
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L12369:
  mov r3, lr, lsr #16
  ands  r2, r3, #255
  beq .L12373
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq r4, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, r4, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L12373:
  movs  lr, lr, lsr #24
  beq .L12363
  ldr r2, [r1, #16]
  tst r2, #256
  ldrne r7, [sp, #20]
  ldreq r8, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, lr
  orrne r2, r7, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L12363:
  add r6, r6, #1
  cmp r5, r6
  sub r0, r0, #64
  bne .L12414
  b .L11219
.L11709:
  add r3, r6, r7
  ldr r7, [sp, #4]
  cmp r7, r3
  bls .L12415
  cmp r4, #0
  beq .L11219
  ldr fp, [sp, #0]
  ldr r3, .L12434+32
  add r1, fp, r6, asl #2
  add r0, r0, r3
  mov r5, #0
  b .L12009
.L12416:
  add ip, ip, #64
  add r1, r1, #32
.L12009:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L12010
  ands  lr, r2, #255
  beq .L12012
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r7, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L12012:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L12016
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L12016:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L12020
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L12020:
  movs  lr, r2, lsr #24
  beq .L12010
  ldr r2, [r1, #12]
  tst r2, #256
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r7, lr
  orrne r2, r6, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L12010:
  ldr r2, [r0, #-60]
  cmp r2, #0
  beq .L12027
  ands  lr, r2, #255
  beq .L12029
  ldr r3, [r1, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L12029:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L12033
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L12033:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L12037
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r7, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L12037:
  movs  r2, r2, lsr #24
  beq .L12027
  ldr r3, [r1, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L12027:
  add r5, r5, #1
  cmp r4, r5
  add r0, r0, #64
  bne .L12416
  b .L11219
.L11505:
  ldr r1, [sp, #4]
  add r3, r6, r7
  cmp r1, r3
  bls .L12417
  cmp r5, #0
  beq .L11219
  ldr fp, [sp, #0]
  mov ip, #0
  add r1, fp, r6, asl #2
  b .L11674
.L12418:
  sub r0, r0, #32
  add r1, r1, #32
.L11674:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L11675
  ands  r3, lr, #15
  beq .L11677
  ldr r2, [r1, #28]
  orr r4, r8, r3
  tst r2, #256
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r7, r4
  orrne r2, r6, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L11677:
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  beq .L11681
  ldr r2, [r1, #24]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L11681:
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  beq .L11685
  ldr r2, [r1, #20]
  orr r4, r8, r3
  tst r2, #256
  ldrne fp, [sp, #20]
  ldreq r6, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r6, r4
  orrne r2, fp, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L11685:
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  beq .L11689
  ldr r2, [r1, #16]
  orr r4, r8, r3
  tst r2, #256
  ldrne r7, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r4
  orrne r2, r7, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L11689:
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  beq .L11693
  ldr r2, [r1, #12]
  orr r4, r8, r3
  tst r2, #256
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r4
  orrne r2, sl, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L11693:
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  beq .L11697
  ldr r2, [r1, #8]
  orr r4, r8, r3
  tst r2, #256
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r7, r4
  orrne r2, r6, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L11697:
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  beq .L11701
  ldr r2, [r1, #4]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L11701:
  movs  r3, lr, lsr #28
  beq .L11675
  ldr r2, [r1, #0]
  orr lr, r8, r3
  tst r2, #256
  ldrne fp, [sp, #20]
  ldreq r4, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r4, lr
  orrne r2, fp, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L11675:
  add ip, ip, #1
  cmp r5, ip
  bne .L12418
  b .L11219
.L11301:
  ldr lr, [sp, #4]
  add r3, r6, r7
  cmp lr, r3
  bls .L12419
  cmp r5, #0
  beq .L11219
  ldr fp, [sp, #0]
  mov ip, #0
  add r1, fp, r6, asl #2
  b .L11470
.L12420:
  add r0, r0, #32
  add r1, r1, #32
.L11470:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L11471
  ands  r3, lr, #15
  beq .L11473
  ldr r2, [r1, #0]
  orr r4, r8, r3
  tst r2, #256
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r7, r4
  orrne r2, r6, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L11473:
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  beq .L11477
  ldr r2, [r1, #4]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L11477:
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  beq .L11481
  ldr r2, [r1, #8]
  orr r4, r8, r3
  tst r2, #256
  ldrne fp, [sp, #20]
  ldreq r6, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r6, r4
  orrne r2, fp, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L11481:
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  beq .L11485
  ldr r2, [r1, #12]
  orr r4, r8, r3
  tst r2, #256
  ldrne r7, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r4
  orrne r2, r7, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L11485:
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  beq .L11489
  ldr r2, [r1, #16]
  orr r4, r8, r3
  tst r2, #256
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r4
  orrne r2, sl, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L11489:
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  beq .L11493
  ldr r2, [r1, #20]
  orr r4, r8, r3
  tst r2, #256
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r7, r4
  orrne r2, r6, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L11493:
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  beq .L11497
  ldr r2, [r1, #24]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L11497:
  movs  r3, lr, lsr #28
  beq .L11471
  ldr r2, [r1, #28]
  orr lr, r8, r3
  tst r2, #256
  ldrne fp, [sp, #20]
  ldreq r4, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r4, lr
  orrne r2, fp, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L11471:
  add ip, ip, #1
  cmp r5, ip
  bne .L12420
  b .L11219
.L12407:
  add sp, sp, #96
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_color32_1D
.L12419:
  rsb ip, r6, lr
  cmp ip, #0
  ble .L11219
  ldr r1, [sp, #0]
  movs  sl, ip, lsr #3
  add r7, r1, r6, asl #2
  beq .L11425
  mov r4, r7
  mov r6, r0
  mov r1, #0
.L11427:
  ldr lr, [r6, #0]
  cmp lr, #0
  beq .L11428
  ands  r3, lr, #15
  beq .L11430
  ldr r2, [r4, #0]
  orr r5, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L11430:
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  beq .L11434
  ldr r2, [r4, #4]
  orr r5, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L11434:
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  beq .L11438
  ldr r2, [r4, #8]
  orr r5, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L11438:
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  beq .L11442
  ldr r2, [r4, #12]
  orr r5, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L11442:
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  beq .L11446
  ldr r2, [r4, #16]
  orr r5, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #16]
  streq r3, [r4, #16]
.L11446:
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  beq .L11450
  ldr r2, [r4, #20]
  orr r5, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #20]
  streq r3, [r4, #20]
.L11450:
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  beq .L11454
  ldr r2, [r4, #24]
  orr r5, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #24]
  streq r3, [r4, #24]
.L11454:
  movs  r3, lr, lsr #28
  beq .L11428
  ldr r2, [r4, #28]
  orr lr, r8, r3
  tst r2, #256
  ldrne r5, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r5, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #28]
  streq r3, [r4, #28]
.L11428:
  add r1, r1, #1
  cmp sl, r1
  add r6, r6, #32
  add r4, r4, #32
  bne .L11427
  mov r3, sl, asl #5
  add r0, r0, r3
  add r7, r7, r3
.L11425:
  ands  r4, ip, #7
  beq .L11219
  ldr ip, [r0, #0]
  mov lr, #0
.L11463:
  ands  r3, ip, #15
  beq .L11464
  ldr r1, [r7, #0]
  ldr sl, [sp, #20]
  orr r2, r8, r3
  mov r3, r1, lsr #16
  orr r0, sl, r2
  mov r3, r3, asl #16
  orr r2, sl, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r7, #0]
  streq r2, [r7, #0]
.L11464:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, lsr #4
  add r7, r7, #4
  bne .L11463
  b .L11219
.L12417:
  rsb sl, r6, r1
  cmp sl, #0
  ble .L11219
  ldr r2, [sp, #0]
  movs  r7, sl, lsr #3
  add r6, r2, r6, asl #2
  beq .L11629
  mov lr, r6
  mov r5, r0
  mov ip, #0
.L11631:
  ldr r1, [r5, #0]
  cmp r1, #0
  beq .L11632
  ands  r3, r1, #15
  beq .L11634
  ldr r2, [lr, #28]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [lr, #28]
  streq r3, [lr, #28]
.L11634:
  mov r3, r1, lsr #4
  ands  r3, r3, #15
  beq .L11638
  ldr r2, [lr, #24]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [lr, #24]
  streq r3, [lr, #24]
.L11638:
  mov r3, r1, lsr #8
  ands  r3, r3, #15
  beq .L11642
  ldr r2, [lr, #20]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [lr, #20]
  streq r3, [lr, #20]
.L11642:
  mov r3, r1, lsr #12
  ands  r3, r3, #15
  beq .L11646
  ldr r2, [lr, #16]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [lr, #16]
  streq r3, [lr, #16]
.L11646:
  mov r3, r1, lsr #16
  ands  r3, r3, #15
  beq .L11650
  ldr r2, [lr, #12]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [lr, #12]
  streq r3, [lr, #12]
.L11650:
  mov r3, r1, lsr #20
  ands  r3, r3, #15
  beq .L11654
  ldr r2, [lr, #8]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [lr, #8]
  streq r3, [lr, #8]
.L11654:
  mov r3, r1, lsr #24
  ands  r3, r3, #15
  beq .L11658
  ldr r2, [lr, #4]
  orr r4, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [lr, #4]
  streq r3, [lr, #4]
.L11658:
  movs  r3, r1, lsr #28
  beq .L11632
  ldr r2, [lr, #0]
  orr r1, r8, r3
  tst r2, #256
  ldrne r4, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r1
  orrne r2, r4, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [lr, #0]
  streq r3, [lr, #0]
.L11632:
  add ip, ip, #1
  cmp r7, ip
  sub r5, r5, #32
  add lr, lr, #32
  bne .L11631
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add r6, r6, r7, asl #5
.L11629:
  ands  r4, sl, #7
  beq .L11219
  ldr ip, [r0, #0]
  mov lr, #0
.L11667:
  movs  r3, ip, lsr #28
  beq .L11668
  ldr r1, [r6, #0]
  ldr sl, [sp, #20]
  orr r2, r8, r3
  mov r3, r1, lsr #16
  orr r0, sl, r2
  mov r3, r3, asl #16
  orr r2, sl, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r6, #0]
  streq r2, [r6, #0]
.L11668:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, asl #4
  add r6, r6, #4
  bne .L11667
  b .L11219
.L12415:
  rsb r8, r6, r7
  cmp r8, #0
  ble .L11219
  ldr r9, [sp, #0]
  movs  r7, r8, lsr #3
  add r6, r9, r6, asl #2
  beq .L11942
  ldr r3, .L12436
  mov lr, r6
  add r0, r0, r3
  mov r5, ip
  mov r1, #0
.L11944:
  ldr r2, [r5, #0]
  cmp r2, #0
  beq .L11945
  ands  r4, r2, #255
  beq .L11947
  ldr r3, [lr, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #0]
  streq r3, [lr, #0]
.L11947:
  mov r3, r2, lsr #8
  ands  r4, r3, #255
  beq .L11951
  ldr r3, [lr, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #4]
  streq r3, [lr, #4]
.L11951:
  mov r3, r2, lsr #16
  ands  r4, r3, #255
  beq .L11955
  ldr r3, [lr, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #8]
  streq r3, [lr, #8]
.L11955:
  movs  r4, r2, lsr #24
  beq .L11945
  ldr r2, [lr, #12]
  tst r2, #256
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r4
  orrne r2, sl, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [lr, #12]
  streq r3, [lr, #12]
.L11945:
  ldr r2, [r0, #-60]
  cmp r2, #0
  beq .L11962
  ands  r4, r2, #255
  beq .L11964
  ldr r3, [lr, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #16]
  streq r3, [lr, #16]
.L11964:
  mov r3, r2, lsr #8
  ands  r4, r3, #255
  beq .L11968
  ldr r3, [lr, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #20]
  streq r3, [lr, #20]
.L11968:
  mov r3, r2, lsr #16
  ands  r4, r3, #255
  beq .L11972
  ldr r3, [lr, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #24]
  streq r3, [lr, #24]
.L11972:
  movs  r2, r2, lsr #24
  beq .L11962
  ldr r3, [lr, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r4, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [lr, #28]
  streq r3, [lr, #28]
.L11962:
  add r1, r1, #1
  cmp r7, r1
  add r5, r5, #64
  add lr, lr, #32
  add r0, r0, #64
  bne .L11944
  add ip, ip, r7, asl #6
  add r6, r6, r7, asl #5
.L11942:
  ands  r4, r8, #7
  beq .L11219
  cmp r4, #3
  ldrls ip, [ip, #0]
  bls .L12001
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L11983
  ands  r1, r2, #255
  beq .L11985
  ldr r3, [r6, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r6, #0]
  streq r3, [r6, #0]
.L11985:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L11989
  ldr r3, [r6, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne lr, [sp, #20]
  ldreq r0, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r0, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r6, #4]
  streq r3, [r6, #4]
.L11989:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L11993
  ldr r3, [r6, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r7, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r6, #8]
  streq r3, [r6, #8]
.L11993:
  movs  r1, r2, lsr #24
  beq .L11983
  ldr r2, [r6, #12]
  tst r2, #256
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r1
  orrne r2, r8, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r6, #12]
  streq r3, [r6, #12]
.L11983:
  subs  r4, r4, #4
  ldr ip, [ip, #4]
  addne r6, r6, #16
  beq .L11219
.L12001:
  mov lr, #0
.L12002:
  ands  r3, ip, #255
  beq .L12003
  ldr r2, [r6, #0]
  ldr sl, [sp, #20]
  tst r2, #256
  orr r1, sl, r3
  orr r0, sl, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [r6, #0]
  streq r1, [r6, #0]
.L12003:
  add lr, lr, #1
  cmp lr, r4
  mov ip, ip, lsr #8
  add r6, r6, #4
  bcc .L12002
  b .L11219
.L12413:
  rsb sl, r6, r7
  cmp sl, #0
  ble .L11219
  ldr r9, [sp, #0]
  movs  r8, sl, lsr #3
  add r7, r9, r6, asl #2
  beq .L12278
  ldr r3, .L12436+4
  mov r4, r7
  add r0, r0, r3
  mov r6, ip
  mov r1, #0
.L12280:
  ldr r2, [r0, #68]
  cmp r2, #0
  beq .L12281
  ands  lr, r2, #255
  beq .L12283
  ldr r3, [r4, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq r5, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, r5, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L12283:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L12287
  ldr r3, [r4, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, fp, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L12287:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L12291
  ldr r3, [r4, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L12291:
  movs  r2, r2, lsr #24
  beq .L12281
  ldr r3, [r4, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq lr, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L12281:
  ldr lr, [r6, #0]
  cmp lr, #0
  beq .L12298
  ands  r5, lr, #255
  beq .L12300
  ldr r2, [r4, #28]
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #28]
  streq r3, [r4, #28]
.L12300:
  mov r3, lr, lsr #8
  ands  r2, r3, #255
  beq .L12304
  ldr r3, [r4, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r4, #24]
  streq r3, [r4, #24]
.L12304:
  mov r3, lr, lsr #16
  ands  r2, r3, #255
  beq .L12308
  ldr r3, [r4, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq r5, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, r5, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r4, #20]
  streq r3, [r4, #20]
.L12308:
  movs  lr, lr, lsr #24
  beq .L12298
  ldr r2, [r4, #16]
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #16]
  streq r3, [r4, #16]
.L12298:
  add r1, r1, #1
  cmp r8, r1
  sub r6, r6, #64
  add r4, r4, #32
  sub r0, r0, #64
  bne .L12280
  rsb r3, r8, r8, asl #26
  add ip, ip, r3, asl #6
  add r7, r7, r8, asl #5
.L12278:
  ands  r4, sl, #7
  beq .L11219
  cmp r4, #3
  ldrls ip, [ip, #4]
  bls .L12337
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L12319
  ands  r1, r2, #255
  beq .L12321
  ldr r3, [r7, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne lr, [sp, #20]
  ldreq r0, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r0, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r7, #12]
  streq r3, [r7, #12]
.L12321:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L12325
  ldr r3, [r7, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #20]
  ldreq r6, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r7, #8]
  streq r3, [r7, #8]
.L12325:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L12329
  ldr r3, [r7, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r7, #4]
  streq r3, [r7, #4]
.L12329:
  movs  r2, r2, lsr #24
  beq .L12319
  ldr r3, [r7, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r7, #0]
  streq r3, [r7, #0]
.L12319:
  subs  r4, r4, #4
  ldr ip, [ip, #0]
  addne r7, r7, #16
  beq .L11219
.L12337:
  mov lr, #0
.L12338:
  movs  r3, ip, lsr #24
  beq .L12339
  ldr r2, [r7, #0]
  ldr r0, [sp, #20]
  tst r2, #256
  orr r1, r0, r3
  orr r0, r0, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [r7, #0]
  streq r1, [r7, #0]
.L12339:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, asl #8
  add r7, r7, #4
  bhi .L12338
  b .L11219
.L12048:
  mov r3, r0, lsr #3
  ands  r2, r0, #7
  sub r4, ip, r3, asl #6
  ldreq r0, [sp, #68]
  beq .L12198
  cmp r2, #3
  rsb r6, r2, #8
  bhi .L12421
  subs  r7, r6, #4
  ldr r1, [r4, #4]
  ldreq r1, [sp, #68]
  beq .L12213
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, asl r3
  ldr lr, [sp, #68]
  mov r5, #0
.L12214:
  movs  r3, ip, lsr #24
  beq .L12215
  ldr r2, [lr, #0]
  ldr r9, [sp, #20]
  tst r2, #256
  orr r1, r9, r3
  orr r0, r9, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12215:
  add r5, r5, #1
  cmp r7, r5
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L12214
  ldr sl, [sp, #68]
  add r3, sl, r6, asl #2
  sub r1, r3, #16
.L12213:
  ldr r2, [r4, #0]
  cmp r2, #0
  beq .L12221
  ands  r0, r2, #255
  beq .L12223
  ldr r3, [r1, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq ip, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L12223:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L12227
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne lr, [sp, #20]
  ldreq r5, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r5, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L12227:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L12231
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r7, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L12231:
  movs  r2, r2, lsr #24
  beq .L12221
  ldr r3, [r1, #0]
  tst r3, #256
  beq .L12236
  mov r3, r3, lsr #16
  ldr r9, [sp, #20]
  mov r3, r3, asl #16
  orr r3, r9, r3
  orr r3, r2, r3
  str r3, [r1, #0]
.L12221:
  add r0, r1, #16
.L12203:
  sub r4, r4, #64
.L12198:
  movs  r5, r8, lsr #3
  beq .L11219
  mov lr, #0
  b .L12239
.L12422:
  sub r4, r4, #64
  add r0, r0, #32
.L12239:
  ldr r2, [r4, #4]
  cmp r2, #0
  beq .L12240
  ands  r1, r2, #255
  beq .L12242
  ldr r3, [r0, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne ip, [sp, #20]
  ldreq r6, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, ip, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L12242:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L12246
  ldr r3, [r0, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r7, [sp, #20]
  ldreq r8, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r7, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L12246:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L12250
  ldr r3, [r0, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L12250:
  movs  r2, r2, lsr #24
  beq .L12240
  ldr r3, [r0, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq ip, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L12240:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L12257
  ands  ip, r1, #255
  beq .L12259
  ldr r2, [r0, #28]
  tst r2, #256
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r7, ip
  orrne r2, r6, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L12259:
  mov r3, r1, lsr #8
  ands  r2, r3, #255
  beq .L12263
  ldr r3, [r0, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L12263:
  mov r3, r1, lsr #16
  ands  r2, r3, #255
  beq .L12267
  ldr r3, [r0, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L12267:
  movs  r1, r1, lsr #24
  beq .L12257
  ldr r2, [r0, #16]
  tst r2, #256
  ldrne ip, [sp, #20]
  ldreq r6, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r6, r1
  orrne r2, ip, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L12257:
  add lr, lr, #1
  cmp lr, r5
  bne .L12422
  b .L11219
.L11712:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  add r4, ip, r3, asl #6
  ldreq r1, [sp, #68]
  beq .L11862
  cmp r2, #3
  rsb r6, r2, #8
  bhi .L12423
  subs  r7, r6, #4
  ldr r1, [r4, #0]
  ldreq r1, [sp, #68]
  beq .L11877
  mov r3, r2, asl #3
  mov ip, r1, lsr r3
  ldr lr, [sp, #68]
  mov r5, #0
.L11878:
  ands  r3, ip, #255
  beq .L11879
  ldr r2, [lr, #0]
  ldr r9, [sp, #20]
  tst r2, #256
  orr r1, r9, r3
  orr r0, r9, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L11879:
  add r5, r5, #1
  cmp r7, r5
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L11878
  ldr sl, [sp, #68]
  add r3, sl, r6, asl #2
  sub r1, r3, #16
.L11877:
  ldr r2, [r4, #4]
  cmp r2, #0
  beq .L11885
  ands  r0, r2, #255
  beq .L11887
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq ip, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L11887:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L11891
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne lr, [sp, #20]
  ldreq r5, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r5, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L11891:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L11895
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r7, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L11895:
  movs  r2, r2, lsr #24
  beq .L11885
  ldr r3, [r1, #12]
  tst r3, #256
  beq .L11900
  mov r3, r3, lsr #16
  ldr r9, [sp, #20]
  mov r3, r3, asl #16
  orr r3, r9, r3
  orr r3, r2, r3
  str r3, [r1, #12]
.L11885:
  add r1, r1, #16
.L11867:
  add r4, r4, #64
.L11862:
  movs  lr, r8, lsr #3
  beq .L11219
  mov ip, #0
  b .L11903
.L12424:
  add r4, r4, #64
  add r1, r1, #32
.L11903:
  ldr r2, [r4, #0]
  cmp r2, #0
  beq .L11904
  ands  r0, r2, #255
  beq .L11906
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #20]
  ldreq r6, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L11906:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L11910
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r7, [sp, #20]
  ldreq r8, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r7, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L11910:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L11914
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L11914:
  movs  r0, r2, lsr #24
  beq .L11904
  ldr r2, [r1, #12]
  tst r2, #256
  ldrne fp, [sp, #20]
  ldreq r5, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r5, r0
  orrne r2, fp, r0
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L11904:
  ldr r2, [r4, #4]
  cmp r2, #0
  beq .L11921
  ands  r0, r2, #255
  beq .L11923
  ldr r3, [r1, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r7, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L11923:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L11927
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L11927:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L11931
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L11931:
  movs  r2, r2, lsr #24
  beq .L11921
  ldr r3, [r1, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r0, [sp, #20]
  ldreq r5, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r5, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L11921:
  add ip, ip, #1
  cmp ip, lr
  bne .L12424
  b .L11219
.L11508:
  ands  r2, lr, #7
  mov r3, lr, lsr #3
  sub ip, r0, r3, asl #5
  ldreq r0, [sp, #68]
  beq .L11579
  rsbs  r6, r2, #8
  ldr r1, [ip, #0]
  ldreq r0, [sp, #68]
  beq .L11582
  mov r3, r2, asl #2
  mov lr, r1, asl r3
  ldr r4, [sp, #68]
  mov r5, #0
.L11583:
  movs  r3, lr, lsr #28
  beq .L11584
  ldr r1, [r4, #0]
  ldr fp, [sp, #20]
  orr r2, r8, r3
  mov r3, r1, lsr #16
  orr r0, fp, r2
  mov r3, r3, asl #16
  orr r2, fp, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L11584:
  add r5, r5, #1
  cmp r5, r6
  mov lr, lr, asl #4
  add r4, r4, #4
  bne .L11583
  ldr lr, [sp, #68]
  add r0, lr, r6, asl #2
.L11582:
  sub ip, ip, #32
.L11579:
  movs  r5, sl, lsr #3
  beq .L11219
  mov r4, #0
  b .L11591
.L12437:
  .align  2
.L12436:
  .word vram+65600
  .word vram+65472
.L12425:
  sub ip, ip, #32
  add r0, r0, #32
.L11591:
  ldr r1, [ip, #0]
  cmp r1, #0
  beq .L11592
  ands  r3, r1, #15
  beq .L11594
  ldr r2, [r0, #28]
  orr lr, r8, r3
  tst r2, #256
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r7, lr
  orrne r2, r6, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L11594:
  mov r3, r1, lsr #4
  ands  r3, r3, #15
  beq .L11598
  ldr r2, [r0, #24]
  orr lr, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L11598:
  mov r3, r1, lsr #8
  ands  r3, r3, #15
  beq .L11602
  ldr r2, [r0, #20]
  orr lr, r8, r3
  tst r2, #256
  ldrne fp, [sp, #20]
  ldreq r6, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r6, lr
  orrne r2, fp, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L11602:
  mov r3, r1, lsr #12
  ands  r3, r3, #15
  beq .L11606
  ldr r2, [r0, #16]
  orr lr, r8, r3
  tst r2, #256
  ldrne r7, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r7, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L11606:
  mov r3, r1, lsr #16
  ands  r3, r3, #15
  beq .L11610
  ldr r2, [r0, #12]
  orr lr, r8, r3
  tst r2, #256
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, lr
  orrne r2, sl, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L11610:
  mov r3, r1, lsr #20
  ands  r3, r3, #15
  beq .L11614
  ldr r2, [r0, #8]
  orr lr, r8, r3
  tst r2, #256
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r7, lr
  orrne r2, r6, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L11614:
  mov r3, r1, lsr #24
  ands  r3, r3, #15
  beq .L11618
  ldr r2, [r0, #4]
  orr lr, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L11618:
  movs  r3, r1, lsr #28
  beq .L11592
  ldr r2, [r0, #0]
  orr r1, r8, r3
  tst r2, #256
  ldrne fp, [sp, #20]
  ldreq lr, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, lr, r1
  orrne r2, fp, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L11592:
  add r4, r4, #1
  cmp r5, r4
  bne .L12425
  b .L11219
.L11304:
  mov r3, lr, lsr #3
  mov r1, r3, asl #5
  ands  r3, lr, #7
  add r6, r0, r1
  ldreq r0, [sp, #68]
  beq .L11375
  rsbs  r7, r3, #8
  ldr r0, [r0, r1]
  ldreq r0, [sp, #68]
  beq .L11378
  mov r3, r3, asl #2
  mov ip, r0, lsr r3
  ldr lr, [sp, #68]
  mov r4, #0
.L11379:
  ands  r3, ip, #15
  beq .L11380
  ldr r1, [lr, #0]
  ldr fp, [sp, #20]
  orr r2, r8, r3
  mov r3, r1, lsr #16
  orr r0, fp, r2
  mov r3, r3, asl #16
  orr r2, fp, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L11380:
  add r4, r4, #1
  cmp r7, r4
  mov ip, ip, lsr #4
  add lr, lr, #4
  bne .L11379
  ldr ip, [sp, #68]
  add r0, ip, r7, asl #2
.L11378:
  add r6, r6, #32
.L11375:
  movs  r4, r5, lsr #3
  beq .L11219
  mov lr, #0
  b .L11387
.L12426:
  add r6, r6, #32
  add r0, r0, #32
.L11387:
  ldr r1, [r6, #0]
  cmp r1, #0
  beq .L11388
  ands  r3, r1, #15
  beq .L11390
  ldr r2, [r0, #0]
  orr ip, r8, r3
  tst r2, #256
  ldrne r5, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r7, ip
  orrne r2, r5, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L11390:
  mov r3, r1, lsr #4
  ands  r3, r3, #15
  beq .L11394
  ldr r2, [r0, #4]
  orr ip, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L11394:
  mov r3, r1, lsr #8
  ands  r3, r3, #15
  beq .L11398
  ldr r2, [r0, #8]
  orr ip, r8, r3
  tst r2, #256
  ldrne fp, [sp, #20]
  ldreq r5, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r5, ip
  orrne r2, fp, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L11398:
  mov r3, r1, lsr #12
  ands  r3, r3, #15
  beq .L11402
  ldr r2, [r0, #12]
  orr ip, r8, r3
  tst r2, #256
  ldrne r7, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, ip
  orrne r2, r7, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L11402:
  mov r3, r1, lsr #16
  ands  r3, r3, #15
  beq .L11406
  ldr r2, [r0, #16]
  orr ip, r8, r3
  tst r2, #256
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, fp, ip
  orrne r2, sl, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L11406:
  mov r3, r1, lsr #20
  ands  r3, r3, #15
  beq .L11410
  ldr r2, [r0, #20]
  orr ip, r8, r3
  tst r2, #256
  ldrne r5, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r7, ip
  orrne r2, r5, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L11410:
  mov r3, r1, lsr #24
  ands  r3, r3, #15
  beq .L11414
  ldr r2, [r0, #24]
  orr ip, r8, r3
  tst r2, #256
  ldrne r9, [sp, #20]
  ldreq sl, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L11414:
  movs  r3, r1, lsr #28
  beq .L11388
  ldr r2, [r0, #28]
  orr r1, r8, r3
  tst r2, #256
  ldrne fp, [sp, #20]
  ldreq ip, [sp, #20]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, ip, r1
  orrne r2, fp, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L11388:
  add lr, lr, #1
  cmp r4, lr
  bne .L12426
  b .L11219
.L11268:
  mov r1, r2
  b .L12397
.L11510:
  ldr lr, [sp, #92]
  rsb r6, r4, #8
  cmp lr, r6
  blt .L12427
  cmp r6, #0
  ldr r2, [ip, #0]
  ldreq r5, [sp, #68]
  beq .L11525
  mov r3, r4, asl #2
  mov lr, r2, asl r3
  ldr r4, [sp, #68]
  mov r5, #0
.L11526:
  movs  r3, lr, lsr #28
  beq .L11527
  ldr r1, [r4, #0]
  ldr r7, [sp, #20]
  orr r2, r8, r3
  mov r3, r1, lsr #16
  orr r0, r7, r2
  mov r3, r3, asl #16
  orr r2, r7, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L11527:
  add r5, r5, #1
  cmp r6, r5
  mov lr, lr, asl #4
  add r4, r4, #4
  bne .L11526
  ldr r9, [sp, #68]
  add r5, r9, r6, asl #2
.L11525:
  ldr fp, [sp, #92]
  sub ip, ip, #32
  rsb sl, r6, fp
  b .L11512
.L12050:
  ldr r0, [sp, #92]
  rsb r5, lr, #8
  cmp r0, r5
  blt .L12428
  cmp lr, #3
  bls .L12091
  cmp r5, #0
  ldr r2, [r8, #0]
  ldreq r4, [sp, #68]
  beq .L12095
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #68]
  mov r4, #0
.L12096:
  movs  r3, ip, lsr #24
  beq .L12097
  ldr r2, [lr, #0]
  ldr r7, [sp, #20]
  tst r2, #256
  orr r1, r7, r3
  orr r0, r7, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12097:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L12096
  ldr sl, [sp, #68]
  add r4, sl, r5, asl #2
.L12095:
  ldr ip, [sp, #92]
  sub r8, r8, #64
  rsb r7, r5, ip
  b .L12052
.L11714:
  ldr sl, [sp, #92]
  rsb r5, lr, #8
  cmp sl, r5
  blt .L12429
  cmp lr, #3
  bls .L11755
  cmp r5, #0
  ldr r2, [r7, #4]
  ldreq r4, [sp, #68]
  beq .L11759
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, lsr r3
  ldr lr, [sp, #68]
  mov r4, #0
.L11760:
  ands  r3, ip, #255
  beq .L11761
  ldr r2, [lr, #0]
  ldr r6, [sp, #20]
  tst r2, #256
  orr r1, r6, r3
  orr r0, r6, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L11761:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L11760
  ldr r9, [sp, #68]
  add r4, r9, r5, asl #2
.L11759:
  ldr fp, [sp, #92]
  add r7, r7, #64
  rsb r6, r5, fp
  b .L11716
.L11306:
  ldr fp, [sp, #92]
  rsb r5, r3, #8
  cmp fp, r5
  blt .L12430
  cmp r5, #0
  ldr r2, [r6, #0]
  ldreq r4, [sp, #68]
  beq .L11321
  mov r3, r3, asl #2
  mov ip, r2, lsr r3
  ldr lr, [sp, #68]
  mov r4, #0
.L11322:
  ands  r3, ip, #15
  beq .L11323
  ldr r1, [lr, #0]
  ldr r7, [sp, #20]
  orr r2, r8, r3
  mov r3, r1, lsr #16
  orr r0, r7, r2
  mov r3, r3, asl #16
  orr r2, r7, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L11323:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #4
  add lr, lr, #4
  bne .L11322
  ldr r9, [sp, #68]
  add r4, r9, r5, asl #2
.L11321:
  ldr fp, [sp, #92]
  add r6, r6, #32
  rsb sl, r5, fp
  b .L11308
.L12423:
  cmp r6, #0
  ldr r1, [r4, #4]
  ldreq r1, [sp, #68]
  beq .L11867
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, lsr r3
  ldr lr, [sp, #68]
  mov r5, #0
.L11868:
  ands  r3, ip, #255
  beq .L11869
  ldr r2, [lr, #0]
  ldr r7, [sp, #20]
  tst r2, #256
  orr r1, r7, r3
  orr r0, r7, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L11869:
  add r5, r5, #1
  cmp r5, r6
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L11868
  ldr sl, [sp, #68]
  add r4, r4, #64
  add r1, sl, r6, asl #2
  b .L11862
.L12430:
  cmp fp, #0
  ble .L11219
  ldr r2, [r0, r1]
  mov r3, r3, asl #2
  mov ip, r2, lsr r3
  ldr lr, [sp, #68]
  mov r4, #0
.L11313:
  ands  r3, ip, #15
  beq .L11314
  ldr r1, [lr, #0]
  orr r2, r8, r3
  ldr r3, [sp, #20]
  ldr r5, [sp, #20]
  orr r0, r3, r2
  mov r3, r1, lsr #16
  mov r3, r3, asl #16
  orr r2, r5, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L11314:
  ldr r6, [sp, #92]
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, lsr #4
  add lr, lr, #4
  bne .L11313
  b .L11219
.L12421:
  cmp r6, #0
  ldr r1, [r4, #0]
  ldreq r0, [sp, #68]
  beq .L12203
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, asl r3
  ldr lr, [sp, #68]
  mov r5, #0
.L12204:
  movs  r3, ip, lsr #24
  beq .L12205
  ldr r2, [lr, #0]
  ldr r7, [sp, #20]
  tst r2, #256
  orr r1, r7, r3
  orr r0, r7, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12205:
  add r5, r5, #1
  cmp r5, r6
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L12204
  ldr sl, [sp, #68]
  sub r4, r4, #64
  add r0, sl, r6, asl #2
  b .L12198
.L12428:
  cmp r0, #0
  ble .L11219
  cmp lr, #3
  bls .L12056
  mov r3, lr, asl #3
  ldr r2, [r8, #0]
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #68]
  mov r4, #0
.L12059:
  movs  r3, ip, lsr #24
  beq .L12060
  ldr r2, [lr, #0]
  ldr r5, [sp, #20]
  tst r2, #256
  orr r1, r5, r3
  orr r0, r5, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12060:
  ldr r6, [sp, #92]
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L12059
  b .L11219
.L12429:
  cmp sl, #0
  ble .L11219
  cmp lr, #3
  bls .L11720
  mov r3, lr, asl #3
  ldr r2, [r7, #4]
  sub r3, r3, #32
  mov ip, r2, lsr r3
  ldr lr, [sp, #68]
  mov r4, #0
.L11723:
  ands  r3, ip, #255
  beq .L11724
  ldr r2, [lr, #0]
  ldr fp, [sp, #20]
  tst r2, #256
  orr r1, fp, r3
  orr r0, fp, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L11724:
  ldr r0, [sp, #92]
  add r4, r4, #1
  cmp r0, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L11723
  b .L11219
.L12427:
  cmp lr, #0
  ble .L11219
  ldr r2, [ip, #0]
  mov r3, r4, asl #2
  mov ip, r2, asl r3
  ldr lr, [sp, #68]
  mov r4, #0
.L11517:
  movs  r3, ip, lsr #28
  beq .L11518
  ldr r1, [lr, #0]
  orr r2, r8, r3
  ldr r3, [sp, #20]
  ldr r5, [sp, #20]
  orr r0, r3, r2
  mov r3, r1, lsr #16
  mov r3, r3, asl #16
  orr r2, r5, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L11518:
  ldr r6, [sp, #92]
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, asl #4
  add lr, lr, #4
  bne .L11517
  b .L11219
.L12433:
  mov r8, #0
  b .L11284
.L12432:
  mov r4, #0
  b .L11244
.L12091:
  subs  r6, r5, #4
  ldr r2, [r8, #4]
  ldreq r2, [sp, #68]
  beq .L12105
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #68]
  mov r4, #0
.L12106:
  movs  r3, ip, lsr #24
  beq .L12107
  ldr r2, [lr, #0]
  ldr r9, [sp, #20]
  tst r2, #256
  orr r1, r9, r3
  orr r0, r9, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12107:
  add r4, r4, #1
  cmp r4, r6
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L12106
  ldr sl, [sp, #68]
  add r3, sl, r5, asl #2
  sub r2, r3, #16
.L12105:
  ldr r1, [r8, #0]
  cmp r1, #0
  beq .L12113
  ands  r0, r1, #255
  beq .L12115
  ldr r3, [r2, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq ip, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #12]
  streq r3, [r2, #12]
.L12115:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L12119
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne lr, [sp, #20]
  ldreq r4, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r4, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L12119:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L12123
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #20]
  ldreq r7, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r7, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L12123:
  movs  r1, r1, lsr #24
  beq .L12113
  ldr r3, [r2, #0]
  tst r3, #256
  beq .L12128
  mov r3, r3, lsr #16
  ldr r9, [sp, #20]
  mov r3, r3, asl #16
  orr r3, r9, r3
  orr r3, r1, r3
  str r3, [r2, #0]
.L12113:
  add r4, r2, #16
  b .L12095
.L11755:
  subs  r6, r5, #4
  ldr r2, [r7, #0]
  ldreq r2, [sp, #68]
  beq .L11769
  mov r3, lr, asl #3
  mov ip, r2, lsr r3
  ldr lr, [sp, #68]
  mov r4, #0
.L11770:
  ands  r3, ip, #255
  beq .L11771
  ldr r2, [lr, #0]
  ldr r8, [sp, #20]
  tst r2, #256
  orr r1, r8, r3
  orr r0, r8, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L11771:
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L11770
  ldr r9, [sp, #68]
  add r3, r9, r5, asl #2
  sub r2, r3, #16
.L11769:
  ldr r1, [r7, #4]
  cmp r1, #0
  beq .L11777
  ands  r0, r1, #255
  beq .L11779
  ldr r3, [r2, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, fp, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #0]
  streq r3, [r2, #0]
.L11779:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L11783
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne ip, [sp, #20]
  ldreq lr, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, ip, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L11783:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L11787
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r4, [sp, #20]
  ldreq r6, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L11787:
  movs  r1, r1, lsr #24
  beq .L11777
  ldr r3, [r2, #12]
  tst r3, #256
  beq .L11792
  mov r3, r3, lsr #16
  ldr r8, [sp, #20]
  mov r3, r3, asl #16
  orr r3, r8, r3
  orr r3, r1, r3
  str r3, [r2, #12]
.L11777:
  add r4, r2, #16
  b .L11759
.L12431:
  ldr lr, [sp, #12]
  b .L12395
.L12056:
  ldr r7, [sp, #92]
  mov r3, lr, asl #3
  ldr r1, [r8, #4]
  add r2, r7, lr
  sub r3, r3, #32
  cmp r2, #4
  mov ip, r1, asl r3
  bhi .L12065
  cmp r7, #0
  ldrne lr, [sp, #68]
  movne r4, #0
  beq .L11219
.L12085:
  movs  r3, ip, lsr #24
  beq .L12086
  ldr r2, [lr, #0]
  ldr r5, [sp, #20]
  tst r2, #256
  orr r1, r5, r3
  orr r0, r5, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12086:
  ldr r6, [sp, #92]
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L12085
  b .L11219
.L11720:
  ldr r1, [sp, #92]
  ldr r3, [r7, #0]
  add r2, r1, lr
  cmp r2, #4
  mov r1, lr, asl #3
  mov ip, r3, lsr r1
  bhi .L11729
  ldr r2, [sp, #92]
  cmp r2, #0
  ldrne lr, [sp, #68]
  movne r4, #0
  beq .L11219
.L11749:
  ands  r3, ip, #255
  beq .L11750
  ldr r2, [lr, #0]
  ldr fp, [sp, #20]
  tst r2, #256
  orr r1, fp, r3
  orr r0, fp, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L11750:
  ldr r0, [sp, #92]
  add r4, r4, #1
  cmp r0, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L11749
  b .L11219
.L11729:
  rsbs  r5, lr, #4
  ldreq lr, [sp, #68]
  beq .L11734
  ldr lr, [sp, #68]
  mov r4, #0
.L11735:
  ands  r3, ip, #255
  beq .L11736
  ldr r2, [lr, #0]
  ldr r6, [sp, #20]
  tst r2, #256
  orr r1, r6, r3
  orr r0, r6, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L11736:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L11735
  ldr r8, [sp, #68]
  add lr, r8, r5, asl #2
.L11734:
  ldr r9, [sp, #92]
  ldr ip, [r7, #4]
  subs  r5, r9, r5
  beq .L11219
  mov r4, #0
.L11743:
  ands  r3, ip, #255
  beq .L11744
  ldr r2, [lr, #0]
  ldr sl, [sp, #20]
  tst r2, #256
  orr r1, sl, r3
  orr r0, sl, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L11744:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L11743
  b .L11219
.L12065:
  rsbs  r5, lr, #4
  ldreq lr, [sp, #68]
  beq .L12070
  ldr lr, [sp, #68]
  mov r4, #0
.L12071:
  movs  r3, ip, lsr #24
  beq .L12072
  ldr r2, [lr, #0]
  ldr r9, [sp, #20]
  tst r2, #256
  orr r1, r9, r3
  orr r0, r9, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12072:
  add r4, r4, #1
  cmp r4, r5
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L12071
  ldr sl, [sp, #68]
  add lr, sl, r5, asl #2
.L12070:
  ldr fp, [sp, #92]
  ldr ip, [r8, #0]
  subs  r5, fp, r5
  beq .L11219
  mov r4, #0
.L12079:
  movs  r3, ip, lsr #24
  beq .L12080
  ldr r2, [lr, #0]
  ldr r0, [sp, #20]
  tst r2, #256
  orr r1, r0, r3
  orr r0, r0, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12080:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L12079
  b .L11219
.L11900:
  ldr fp, [sp, #20]
  orr r3, fp, r3, asl #16
  orr r3, r2, r3
  str r3, [r1, #12]
  add r1, r1, #16
  b .L11867
.L12236:
  ldr fp, [sp, #20]
  add r0, r1, #16
  orr r3, fp, r3, asl #16
  orr r3, r2, r3
  str r3, [r1, #0]
  b .L12203
.L12128:
  ldr fp, [sp, #20]
  add r4, r2, #16
  orr r3, fp, r3, asl #16
  orr r3, r1, r3
  str r3, [r2, #0]
  b .L12095
.L11792:
  ldr sl, [sp, #20]
  add r4, r2, #16
  orr r3, sl, r3, asl #16
  orr r3, r1, r3
  str r3, [r2, #12]
  b .L11759
  .size render_scanline_obj_alpha_obj_1D, .-render_scanline_obj_alpha_obj_1D
  .align  2
  .global render_scanline_obj_alpha_obj_2D
  .type render_scanline_obj_alpha_obj_2D, %function
render_scanline_obj_alpha_obj_2D:
  @ args = 0, pretend = 0, frame = 88
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L13670
  sub sp, sp, #88
  ldrh  lr, [r5, #80]
  mov r4, r0
  mov ip, lr, lsr #11
  and ip, ip, #2
  mov lr, lr, asl #27
  orr ip, ip, lr, lsr #31
  mov ip, ip, asl #9
  orr ip, ip, #256
  tst ip, #512
  str r1, [sp, #12]
  str ip, [sp, #24]
  str r2, [sp, #8]
  str r3, [sp, #4]
  beq .L13643
  ldrh  r5, [r5, #6]
  add r3, r0, r0, asl #2
  ldr r2, .L13670+4
  add r3, r5, r3, asl #5
  ldr r2, [r2, r3, asl #2]
  str r5, [sp, #32]
  str r2, [sp, #36]
  cmp r2, #0
  ldr r2, .L13670+8
  add r3, r2, r3, asl #7
  str r3, [sp, #40]
  beq .L13617
  ldr r1, [sp, #12]
  ldmib sp, {r0, r2}  @ phole ldm
  mov r3, #0
  add r0, r0, r1, asl #2
  rsb r2, r1, r2
  str r0, [sp, #60]
  str r2, [sp, #80]
  str r3, [sp, #28]
  mov r4, r3
.L12443:
  ldr r5, [sp, #40]
  ldr r6, .L13670+20
  ldrb  r3, [r4, r5]  @ zero_extendqisi2
  ldr r7, .L13670+12
  mov r3, r3, asl #3
  ldrh  lr, [r3, r6]
  add r3, r3, r6
  ldrh  r1, [r3, #2]
  mov r4, lr, lsr #12
  and r2, r4, #12
  orr r0, r2, r1, lsr #14
  and ip, lr, #255
  mov r2, r1, asl #23
  cmp ip, #160
  mov r5, r2, asr #23
  ldr r2, .L13670+16
  subgt ip, ip, #256
  tst lr, #256
  ldrh  r9, [r3, #4]
  ldr r8, [r7, r0, asl #2]
  ldr sl, [r2, r0, asl #2]
  beq .L12446
  tst lr, #8192
  beq .L12448
  mov r3, r1, lsr #4
  ldr r4, .L13670+20
  and r3, r3, #992
  add r3, r3, r4
  add r2, r8, r8, lsr #31
  tst lr, #512
  ldrh  r6, [r3, #30]
  mov lr, r2, asr #1
  add r1, sl, sl, lsr #31
  ldr r2, [sp, #12]
  mov r4, r1, asr #1
  movne r0, lr, asl #1
  str r6, [sp, #16]
  strne r0, [sp, #44]
  moveq r6, r8
  streq lr, [sp, #44]
  moveq r0, r4
  movne r6, r8, asl #1
  movne r0, r4, asl #1
  cmp r5, r2
  ldrh  fp, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  r7, [r3, #22]
  bge .L12453
  rsb r2, r5, r2
  rsb r6, r2, r6
  cmp r6, #0
  ble .L12455
  ldr r3, [sp, #44]
  ldr r5, [sp, #12]
  rsb r3, r2, r3
  str r3, [sp, #44]
.L12453:
  ldr r2, [sp, #8]
  add r3, r5, r6
  cmp r3, r2
  blt .L12457
  rsb r6, r5, r2
  cmp r6, #0
  ble .L12455
.L12457:
  add r0, ip, r0
  ldr ip, [sp, #16]
  mov r2, r1, asl #16
  mov r3, fp, asl #16
  mov r1, ip, asl #16
  mov fp, r3, asr #16
  mov ip, r2, asr #16
  ldr r3, [sp, #32]
  ldr r2, [sp, #4]
  mov lr, lr, asl #8
  cmp r7, #0
  str lr, [sp, #72]
  mov r1, r1, asr #16
  mov lr, r4, asl #8
  add r5, r2, r5, asl #2
  rsb r0, r0, r3
  bne .L12459
  mla r3, r0, r1, lr
  mov r1, r3, asr #8
  cmp r1, sl
  bcs .L12455
  mov r3, r9, asl #22
  mov r2, r1, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #2
  ldr r3, .L13670+24
  cmp r6, #0
  add sl, r3, r1, asl #3
  ble .L12455
  ldr r2, [sp, #44]
  mul r3, r0, ip
  mul r2, fp, r2
  ldr r4, [sp, #72]
  rsb r3, r2, r3
  add r0, r4, r3
  mov r2, r0, asr #8
  cmp r8, r2
  movls lr, r7
  bls .L12465
  b .L13667
.L12466:
  cmp r8, r2
  bhi .L13631
.L12465:
  add lr, lr, #1
  add r0, r0, fp
  cmp r6, lr
  mov r2, r0, asr #8
  add r5, r5, #4
  bne .L12466
.L12455:
  ldr r5, [sp, #28]
  ldr r6, [sp, #36]
  add r5, r5, #1
  cmp r5, r6
  str r5, [sp, #28]
  beq .L13617
  ldr r4, [sp, #28]
  b .L12443
.L12446:
  ldr r2, [sp, #32]
  tst r1, #8192
  rsb r0, ip, r2
  rsbne r3, r0, sl
  subne r0, r3, #1
  mov r2, r1, asl #19
  and r3, r4, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L12455
  .p2align 2
.L12536:
  .word .L12532
  .word .L12533
  .word .L12534
  .word .L12535
.L12532:
  mov r3, r9, asl #22
  mov r2, r0, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r0, #7
  add r1, r1, r3, asl #3
  ldr r3, [sp, #12]
  mov r2, r9, lsr #8
  cmp r5, r3
  ldr r3, .L13670+24
  and r6, r2, #240
  add ip, r3, r1, asl #2
  bge .L12537
  ldr r4, [sp, #12]
  rsb lr, r5, r4
  rsb r7, lr, r8
  cmp r7, #0
  ble .L12455
  add r3, r5, r8
  ldr r5, [sp, #8]
  cmp r5, r3
  bhi .L12540
  mov r3, lr, lsr #3
  mov r0, r3, asl #5
  ands  r3, lr, #7
  add r7, ip, r0
  bne .L12542
  ldr sl, [sp, #80]
  ldr r4, [sp, #60]
.L12544:
  movs  r8, sl, lsr #3
  beq .L12565
  mov r0, r4
  mov lr, r7
  mov r5, #0
.L12567:
  ldr r1, [lr, #0]
  cmp r1, #0
  beq .L12568
  ands  r3, r1, #15
  beq .L12570
  ldr r2, [r0, #0]
  orr ip, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L12570:
  mov r3, r1, lsr #4
  ands  r3, r3, #15
  beq .L12574
  ldr r2, [r0, #4]
  orr ip, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L12574:
  mov r3, r1, lsr #8
  ands  r3, r3, #15
  beq .L12578
  ldr r2, [r0, #8]
  orr ip, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L12578:
  mov r3, r1, lsr #12
  ands  r3, r3, #15
  beq .L12582
  ldr r2, [r0, #12]
  orr ip, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L12582:
  mov r3, r1, lsr #16
  ands  r3, r3, #15
  beq .L12586
  ldr r2, [r0, #16]
  orr ip, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L12586:
  mov r3, r1, lsr #20
  ands  r3, r3, #15
  beq .L12590
  ldr r2, [r0, #20]
  orr ip, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L12590:
  mov r3, r1, lsr #24
  ands  r3, r3, #15
  beq .L12594
  ldr r2, [r0, #24]
  orr ip, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L12594:
  movs  r3, r1, lsr #28
  beq .L12568
  ldr r2, [r0, #28]
  orr r1, r6, r3
  tst r2, #256
  ldrne ip, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r1
  orrne r2, ip, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L12568:
  add r5, r5, #1
  cmp r5, r8
  add lr, lr, #32
  add r0, r0, #32
  bne .L12567
  mov r3, r8, asl #5
  add r7, r7, r3
  add r4, r4, r3
.L12565:
  ands  r5, sl, #7
  beq .L12455
  ldr ip, [r7, #0]
  mov lr, #0
.L12603:
  ands  r3, ip, #15
  beq .L12604
  ldr r1, [r4, #0]
  ldr sl, [sp, #24]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, sl, r2
  mov r3, r3, asl #16
  orr r2, sl, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L12604:
  add lr, lr, #1
  cmp r5, lr
  mov ip, ip, lsr #4
  add r4, r4, #4
  bne .L12603
  b .L12455
.L12533:
  mov r3, r9, asl #22
  mov r1, r0, lsr #3
  subs  r2, r8, #8
  mov r3, r3, lsr #22
  submi r2, r8, #1
  add r3, r3, r1, asl #5
  add r3, r3, r2, asr #3
  and r1, r0, #7
  ldr ip, [sp, #12]
  add r1, r1, r3, asl #3
  ldr r3, .L13670+24
  mov r2, r9, lsr #8
  cmp r5, ip
  add r0, r3, r1, asl #2
  and r6, r2, #240
  bge .L12741
  rsb lr, r5, ip
  rsb r7, lr, r8
  cmp r7, #0
  ble .L12455
  ldr r1, [sp, #8]
  add r3, r5, r8
  cmp r1, r3
  bhi .L12744
  mov r3, lr, lsr #3
  ands  r4, lr, #7
  sub ip, r0, r3, asl #5
  bne .L12746
  ldr sl, [sp, #80]
  ldr r5, [sp, #60]
.L12748:
  movs  r8, sl, lsr #3
  beq .L12769
  mov r0, r5
  mov r4, ip
  mov r7, #0
.L12771:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L12772
  ands  r3, r1, #15
  beq .L12774
  ldr r2, [r0, #28]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L12774:
  mov r3, r1, lsr #4
  ands  r3, r3, #15
  beq .L12778
  ldr r2, [r0, #24]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L12778:
  mov r3, r1, lsr #8
  ands  r3, r3, #15
  beq .L12782
  ldr r2, [r0, #20]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L12782:
  mov r3, r1, lsr #12
  ands  r3, r3, #15
  beq .L12786
  ldr r2, [r0, #16]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L12786:
  mov r3, r1, lsr #16
  ands  r3, r3, #15
  beq .L12790
  ldr r2, [r0, #12]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L12790:
  mov r3, r1, lsr #20
  ands  r3, r3, #15
  beq .L12794
  ldr r2, [r0, #8]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L12794:
  mov r3, r1, lsr #24
  ands  r3, r3, #15
  beq .L12798
  ldr r2, [r0, #4]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L12798:
  movs  r3, r1, lsr #28
  beq .L12772
  ldr r2, [r0, #0]
  orr r1, r6, r3
  tst r2, #256
  ldrne lr, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r1
  orrne r2, lr, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L12772:
  add r7, r7, #1
  cmp r8, r7
  sub r4, r4, #32
  add r0, r0, #32
  bne .L12771
  rsb r3, r8, r8, asl #27
  add ip, ip, r3, asl #5
  add r5, r5, r8, asl #5
.L12769:
  ands  r4, sl, #7
  beq .L12455
  ldr ip, [ip, #0]
  mov lr, #0
.L12807:
  movs  r3, ip, lsr #28
  beq .L12808
  ldr r1, [r5, #0]
  ldr sl, [sp, #24]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, sl, r2
  mov r3, r3, asl #16
  orr r2, sl, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r5, #0]
  streq r2, [r5, #0]
.L12808:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, asl #4
  add r5, r5, #4
  bne .L12807
  b .L12455
.L12534:
  mov r2, r9, asl #22
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  and r3, r0, #7
  add r2, r2, r1, asl #5
  add r3, r3, r2, asl #2
  ldr ip, [sp, #12]
  mov r0, r3, asl #3
  ldr r3, .L13670+24
  cmp r5, ip
  add ip, r0, r3
  bge .L12945
  ldr lr, [sp, #12]
  rsb r0, r5, lr
  rsb r7, r0, r8
  cmp r7, #0
  ble .L12455
  ldr r1, [sp, #8]
  add r3, r5, r8
  cmp r1, r3
  bhi .L12948
  mov r3, r0, lsr #3
  ands  lr, r0, #7
  add r7, ip, r3, asl #6
  bne .L12950
  ldr r6, [sp, #80]
  ldr r4, [sp, #60]
.L12952:
  movs  r5, r6, lsr #3
  beq .L13030
  mov r1, r4
  mov ip, r7
  mov lr, #0
.L13032:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L13033
  ands  r0, r2, #255
  beq .L13035
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L13035:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L13039
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L13039:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L13043
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L13043:
  movs  r0, r2, lsr #24
  beq .L13033
  ldr r2, [r1, #12]
  tst r2, #256
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r0
  orrne r2, r8, r0
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L13033:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L13050
  ands  r0, r2, #255
  beq .L13052
  ldr r3, [r1, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L13052:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L13056
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L13056:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L13060
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L13060:
  movs  r2, r2, lsr #24
  beq .L13050
  ldr r3, [r1, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq r0, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, r0, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L13050:
  add lr, lr, #1
  cmp lr, r5
  add ip, ip, #64
  add r1, r1, #32
  bne .L13032
  add r7, r7, r5, asl #6
  add r4, r4, r5, asl #5
.L13030:
  ands  r5, r6, #7
  beq .L12455
  cmp r5, #3
  ldrls ip, [r7, #0]
  bls .L13089
  ldr r2, [r7, #0]
  cmp r2, #0
  beq .L13071
  ands  r1, r2, #255
  beq .L13073
  ldr r3, [r4, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L13073:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L13077
  ldr r3, [r4, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L13077:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L13081
  ldr r3, [r4, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne ip, [sp, #24]
  ldreq lr, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, ip, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L13081:
  movs  r1, r2, lsr #24
  beq .L13071
  ldr r2, [r4, #12]
  tst r2, #256
  ldrne r0, [sp, #24]
  ldreq r6, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r6, r1
  orrne r2, r0, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L13071:
  subs  r5, r5, #4
  ldr ip, [r7, #4]
  addne r4, r4, #16
  beq .L12455
.L13089:
  mov lr, #0
.L13090:
  ands  r3, ip, #255
  beq .L13091
  ldr r2, [r4, #0]
  ldr r7, [sp, #24]
  tst r2, #256
  orr r1, r7, r3
  orr r0, r7, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [r4, #0]
  streq r1, [r4, #0]
.L13091:
  add lr, lr, #1
  cmp r5, lr
  mov ip, ip, lsr #8
  add r4, r4, #4
  bhi .L13090
  b .L12455
.L13671:
  .align  2
.L13670:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word obj_width_table
  .word obj_height_table
  .word oam_ram
  .word vram+65536
  .word vram+65472
  .word vram+65600
.L12535:
  subs  r2, r8, #8
  submi r2, r8, #1
  mov r3, r0, lsr #3
  mov r2, r2, asr #3
  mov r1, r9, asl #22
  add r2, r2, r3, asl #4
  mov r1, r1, lsr #22
  add r1, r1, r2, asl #1
  and r3, r0, #7
  add r3, r3, r1, asl #2
  ldr r1, [sp, #12]
  mov r0, r3, asl #3
  ldr r3, .L13670+24
  cmp r5, r1
  add ip, r0, r3
  bge .L13281
  rsb r0, r5, r1
  rsb r7, r0, r8
  cmp r7, #0
  ble .L12455
  ldr r2, [sp, #8]
  add r3, r5, r8
  cmp r2, r3
  bhi .L13284
  mov r3, r0, lsr #3
  ands  lr, r0, #7
  sub r8, ip, r3, asl #6
  bne .L13286
  ldr r7, [sp, #80]
  ldr r4, [sp, #60]
.L13288:
  movs  r6, r7, lsr #3
  beq .L13366
  mov r0, r4
  mov lr, r8
  mov r5, #0
.L13368:
  ldr r2, [lr, #4]
  cmp r2, #0
  beq .L13369
  ands  r1, r2, #255
  beq .L13371
  ldr r3, [r0, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L13371:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L13375
  ldr r3, [r0, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne ip, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, ip, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L13375:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L13379
  ldr r3, [r0, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq ip, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L13379:
  movs  r2, r2, lsr #24
  beq .L13369
  ldr r3, [r0, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r1, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L13369:
  ldr r1, [lr, #0]
  cmp r1, #0
  beq .L13386
  ands  ip, r1, #255
  beq .L13388
  ldr r2, [r0, #28]
  tst r2, #256
  ldrne sl, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, ip
  orrne r2, sl, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L13388:
  mov r3, r1, lsr #8
  ands  r2, r3, #255
  beq .L13392
  ldr r3, [r0, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq ip, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L13392:
  mov r3, r1, lsr #16
  ands  r2, r3, #255
  beq .L13396
  ldr r3, [r0, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L13396:
  movs  r1, r1, lsr #24
  beq .L13386
  ldr r2, [r0, #16]
  tst r2, #256
  ldrne ip, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r1
  orrne r2, ip, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L13386:
  add r5, r5, #1
  cmp r5, r6
  sub lr, lr, #64
  add r0, r0, #32
  bne .L13368
  rsb r3, r6, r6, asl #26
  add r8, r8, r3, asl #6
  add r4, r4, r6, asl #5
.L13366:
  ands  r5, r7, #7
  beq .L12455
  cmp r5, #3
  ldrls ip, [r8, #4]
  bls .L13425
  ldr r2, [r8, #4]
  cmp r2, #0
  beq .L13407
  ands  r1, r2, #255
  beq .L13409
  ldr r3, [r4, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq ip, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L13409:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L13413
  ldr r3, [r4, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne lr, [sp, #24]
  ldreq r0, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r0, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L13413:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L13417
  ldr r3, [r4, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #24]
  ldreq r7, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r7, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L13417:
  movs  r2, r2, lsr #24
  beq .L13407
  ldr r3, [r4, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L13407:
  subs  r5, r5, #4
  ldr ip, [r8, #0]
  addne r4, r4, #16
  beq .L12455
.L13425:
  mov lr, #0
.L13426:
  movs  r3, ip, lsr #24
  beq .L13427
  ldr r2, [r4, #0]
  ldr r0, [sp, #24]
  tst r2, #256
  orr r1, r0, r3
  orr r0, r0, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [r4, #0]
  streq r1, [r4, #0]
.L13427:
  add lr, lr, #1
  cmp r5, lr
  mov ip, ip, asl #8
  add r4, r4, #4
  bhi .L13426
  b .L12455
.L12448:
  mov r3, r1, lsr #4
  ldr r4, .L13670+20
  and r3, r3, #992
  add r3, r3, r4
  add r2, r8, r8, lsr #31
  tst lr, #512
  ldrh  r6, [r3, #30]
  mov lr, r2, asr #1
  add r1, sl, sl, lsr #31
  ldr r2, [sp, #12]
  mov r4, r1, asr #1
  movne r0, r8, asl #1
  str r6, [sp, #20]
  strne r0, [sp, #84]
  streq r8, [sp, #84]
  moveq r6, lr
  moveq r0, r4
  movne r6, lr, asl #1
  movne r0, r4, asl #1
  cmp r5, r2
  ldrh  r7, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  fp, [r3, #22]
  bge .L12490
  ldr r3, [sp, #84]
  rsb r2, r5, r2
  rsb r3, r2, r3
  cmp r3, #0
  str r3, [sp, #84]
  ble .L12455
  ldr r5, [sp, #12]
  rsb r6, r2, r6
.L12490:
  ldr r2, [sp, #84]
  add r3, r5, r2
  ldr r2, [sp, #8]
  cmp r3, r2
  blt .L12493
  rsb r3, r5, r2
  cmp r3, #0
  str r3, [sp, #84]
  ble .L12455
.L12493:
  mov r3, r7, asl #16
  mov r2, r1, asl #16
  ldr r7, [sp, #20]
  mov r3, r3, asr #16
  mov r2, r2, asr #16
  add ip, ip, r0
  str r3, [sp, #48]
  mov r0, r9, lsr #8
  str r2, [sp, #52]
  ldr r3, [sp, #32]
  ldr r2, [sp, #4]
  mov r1, r7, asl #16
  mov lr, lr, asl #8
  and r0, r0, #240
  cmp fp, #0
  str lr, [sp, #64]
  mov r1, r1, asr #16
  mov lr, r4, asl #8
  add r7, r2, r5, asl #2
  rsb ip, ip, r3
  str r0, [sp, #76]
  bne .L12495
  mla r3, ip, r1, lr
  mov r1, r3, asr #8
  cmp r1, sl
  bcs .L12455
  mov r3, r9, asl #22
  mov r2, r1, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  ldr r4, [sp, #84]
  add r1, r1, r3, asl #3
  ldr r3, .L13670+24
  cmp r4, #0
  add r5, r3, r1, asl #2
  ble .L12455
  ldr r3, [sp, #52]
  ldr r2, [sp, #48]
  mul r3, ip, r3
  mul r2, r6, r2
  ldr r6, [sp, #64]
  rsb r3, r2, r3
  add ip, r6, r3
  mov r1, ip, asr #8
  cmp r1, r8
  movcc r4, fp
  movcs r4, fp
  bcs .L12502
  b .L13633
.L12503:
  cmp r8, r2
  bhi .L12504
.L12502:
  ldr r9, [sp, #48]
  ldr sl, [sp, #84]
  add r4, r4, #1
  add ip, ip, r9
  cmp sl, r4
  mov r2, ip, asr #8
  add r7, r7, #4
  bne .L12503
  b .L12455
.L13617:
  add sp, sp, #88
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L12459:
  mov r3, r9, asl #22
  ldr r2, .L13670+24
  mov r3, r3, lsr #22
  cmp r6, #0
  add r9, r2, r3, asl #5
  ble .L12455
  mov r3, r7, asl #16
  mul r2, r0, r1
  mov r7, r3, asr #16
  mul r3, r0, ip
  ldr r0, [sp, #44]
  ldr r1, [sp, #44]
  mul r0, fp, r0
  mul r1, r7, r1
  rsb r3, r0, r3
  ldr r0, [sp, #72]
  rsb r2, r1, r2
  add ip, r0, r3
  add r0, lr, r2
  mov r1, r0, asr #8
  mov lr, ip, asr #8
  cmp lr, r8
  cmpcc r1, sl
  movcs r3, #0
  movcc r3, #1
  movcs r4, r3
  bcs .L12477
  b .L13668
.L12478:
  cmp r8, lr
  cmphi sl, r1
  bhi .L12480
.L12477:
  add r4, r4, #1
  add ip, ip, fp
  add r0, r0, r7
  cmp r6, r4
  mov lr, ip, asr #8
  mov r1, r0, asr #8
  add r5, r5, #4
  bne .L12478
  b .L12455
.L13646:
  and r3, r1, #7
  mov r2, lr, asr #3
  mov r3, r3, asl #3
  add r3, r3, r2, asl #6
  mov r1, r1, asr #3
  add r3, r3, r1, asl #10
  and r2, lr, #7
  add r3, r3, r9
  ldrb  lr, [r3, r2]  @ zero_extendqisi2
  cmp lr, #0
  beq .L12483
  ldr r3, [r5, #0]
  ldr r1, [sp, #24]
  mov r2, r3, lsr #16
  mov r2, r2, asl #16
  orr r2, r1, r2
  orr r1, r1, r3, asl #16
  orr r2, lr, r2
  tst r3, #256
  orr r1, lr, r1
  str r2, [sp, #0]
  strne r2, [r5, #0]
  streq r1, [r5, #0]
.L12483:
  add r4, r4, #1
  add ip, ip, fp
  add r0, r0, r7
  cmp r6, r4
  mov lr, ip, asr #8
  mov r1, r0, asr #8
  add r5, r5, #4
  ble .L12455
.L12480:
  cmp sl, r1
  cmphi r8, lr
  bhi .L13646
  b .L12455
.L12495:
  mov r3, r9, asl #22
  ldr r4, [sp, #84]
  ldr r2, .L13670+24
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  cmp r4, #0
  str r3, [sp, #68]
  ble .L12455
  mov r3, fp, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #56]
  mul r2, ip, r1
  ldr r3, [sp, #52]
  ldr r1, [sp, #56]
  ldr r0, [sp, #48]
  mul r3, ip, r3
  mul r1, r6, r1
  mul r0, r6, r0
  ldr r6, [sp, #64]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r5, r6, r3
  add r4, lr, r2
  mov ip, r5, asr #8
  mov lr, r4, asr #8
  cmp ip, r8
  cmpcc lr, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L12517
  b .L13669
.L12518:
  cmp r8, ip
  cmphi sl, lr
  bhi .L12520
.L12517:
  ldr ip, [sp, #56]
  ldr r9, [sp, #48]
  ldr r0, [sp, #84]
  add r6, r6, #1
  add r4, r4, ip
  add r5, r5, r9
  cmp r0, r6
  mov ip, r5, asr #8
  mov lr, r4, asr #8
  add r7, r7, #4
  bne .L12518
  b .L12455
.L13648:
  mov r3, ip, asr #1
  ldr r2, [sp, #68]
  and fp, r3, #3
  ldr r3, [sp, #68]
  and r1, lr, #7
  and r0, lr, #7
  add r1, r2, r1, asl #2
  add r0, r3, r0, asl #2
  mov r2, ip, asr #1
  mov r3, lr, asr #3
  and r9, r2, #3
  mov r3, r3, asl #10
  mov r2, ip, asr #3
  add r3, r3, r2, asl #5
  add r0, r0, r3
  tst ip, #1
  add r1, r1, r3
  ldrneb  r3, [r1, fp]  @ zero_extendqisi2
  ldreqb  r3, [r0, r9]  @ zero_extendqisi2
  movne r0, r3, lsr #4
  andeq r0, r3, #15
  ldr r9, [sp, #76]
  cmp r0, #0
  orr r0, r0, r9
  beq .L12526
  ldr r2, [r7, #0]
  ldr ip, [sp, #24]
  mov r3, r2, lsr #16
  orr r1, ip, r0
  mov r3, r3, asl #16
  orr r0, ip, r0
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r7, #0]
  streq r0, [r7, #0]
.L12526:
  ldr lr, [sp, #48]
  ldr r0, [sp, #56]
  ldr r1, [sp, #84]
  add r6, r6, #1
  add r5, r5, lr
  add r4, r4, r0
  cmp r1, r6
  add r7, r7, #4
  mov ip, r5, asr #8
  mov lr, r4, asr #8
  ble .L12455
.L12520:
  cmp sl, lr
  cmphi r8, ip
  bhi .L13648
  b .L12455
.L12505:
  cmp r8, r1
  bls .L12455
.L13633:
  mov r3, r1, asr #1
  and lr, r3, #3
  mov r3, r1, asr #3
  mov r3, r3, asl #5
  mov r2, r1, asr #1
  tst r1, #1
  and r0, r2, #3
  add r1, r3, r5
  add r2, r3, r5
  ldreqb  r3, [r2, r0]  @ zero_extendqisi2
  ldrneb  r3, [r1, lr]  @ zero_extendqisi2
  andeq r2, r3, #15
  movne r2, r3, lsr #4
  ldr lr, [sp, #76]
  cmp r2, #0
  orr r3, r2, lr
  beq .L12510
  ldr r2, [r7, #0]
  ldr r0, [sp, #24]
  tst r2, #256
  orr r1, r0, r3
  orr r0, r0, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r1, r3, r1
  orr r3, r0, r2, asl #16
  strne r1, [r7, #0]
  streq r3, [r7, #0]
.L12510:
  ldr r1, [sp, #48]
  ldr r2, [sp, #84]
  add r4, r4, #1
  add ip, ip, r1
  cmp r2, r4
  add r7, r7, #4
  mov r1, ip, asr #8
  bgt .L12505
  b .L12455
.L12468:
  cmp r8, r2
  bls .L12455
.L13631:
  mov r3, r2, asr #3
  add r3, sl, r3, asl #6
  and r2, r2, #7
  ldrb  ip, [r3, r2]  @ zero_extendqisi2
  cmp ip, #0
  beq .L12470
  ldr r3, [r5, #0]
  ldr r7, [sp, #24]
  mov r2, r3, lsr #16
  mov r2, r2, asl #16
  orr r2, r7, r2
  orr r1, r7, r3, asl #16
  orr r4, ip, r2
  tst r3, #256
  orr r2, ip, r1
  strne r4, [r5, #0]
  streq r2, [r5, #0]
.L12470:
  add lr, lr, #1
  add r0, r0, fp
  cmp r6, lr
  add r5, r5, #4
  mov r2, r0, asr #8
  bgt .L12468
  b .L12455
.L13281:
  ldr r9, [sp, #8]
  add r3, r5, r8
  cmp r3, r9
  bcs .L13649
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  r6, r3, asr #3
  beq .L12455
  ldr r2, [sp, #4]
  ldr r3, .L13670+28
  add r1, r2, r5, asl #2
  add r0, r0, r3
  mov r5, #0
  b .L13581
.L13650:
  sub ip, ip, #64
  add r1, r1, #32
.L13581:
  ldr r2, [r0, #68]
  cmp r2, #0
  beq .L13582
  ands  lr, r2, #255
  beq .L13584
  ldr r3, [r1, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r4, [sp, #24]
  ldreq r7, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r7, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L13584:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L13588
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L13588:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L13592
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq r4, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, r4, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L13592:
  movs  r2, r2, lsr #24
  beq .L13582
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r7, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L13582:
  ldr lr, [ip, #0]
  cmp lr, #0
  beq .L13599
  ands  r4, lr, #255
  beq .L13601
  ldr r2, [r1, #28]
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L13601:
  mov r3, lr, lsr #8
  ands  r2, r3, #255
  beq .L13605
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r4, [sp, #24]
  ldreq r7, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r7, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L13605:
  mov r3, lr, lsr #16
  ands  r2, r3, #255
  beq .L13609
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L13609:
  movs  lr, lr, lsr #24
  beq .L13599
  ldr r2, [r1, #16]
  tst r2, #256
  ldrne sl, [sp, #24]
  ldreq r4, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r4, lr
  orrne r2, sl, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L13599:
  add r5, r5, #1
  cmp r6, r5
  sub r0, r0, #64
  bne .L13650
  b .L12455
.L12945:
  ldr r9, [sp, #8]
  add r3, r5, r8
  cmp r9, r3
  bls .L13651
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  r6, r3, asr #3
  beq .L12455
  ldr r2, [sp, #4]
  ldr r3, .L13670+32
  add r1, r2, r5, asl #2
  add r0, r0, r3
  mov r4, #0
  b .L13245
.L13652:
  add ip, ip, #64
  add r1, r1, #32
.L13245:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L13246
  ands  lr, r2, #255
  beq .L13248
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r7, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r7, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L13248:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L13252
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L13252:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L13256
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq r5, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, r5, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L13256:
  movs  lr, r2, lsr #24
  beq .L13246
  ldr r2, [r1, #12]
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, lr
  orrne r2, r7, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L13246:
  ldr r2, [r0, #-60]
  cmp r2, #0
  beq .L13263
  ands  lr, r2, #255
  beq .L13265
  ldr r3, [r1, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L13265:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L13269
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r7, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r7, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L13269:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L13273
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L13273:
  movs  r2, r2, lsr #24
  beq .L13263
  ldr r3, [r1, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq lr, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L13263:
  add r4, r4, #1
  cmp r6, r4
  add r0, r0, #64
  bne .L13652
  b .L12455
.L12741:
  ldr ip, [sp, #8]
  add r3, r5, r8
  cmp ip, r3
  bls .L13653
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  r7, r3, asr #3
  beq .L12455
  ldr ip, [sp, #4]
  add r1, ip, r5, asl #2
  mov ip, #0
  b .L12910
.L13654:
  sub r0, r0, #32
  add r1, r1, #32
.L12910:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L12911
  ands  r3, lr, #15
  beq .L12913
  ldr r2, [r1, #28]
  orr r4, r6, r3
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, r4
  orrne r2, r5, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L12913:
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  beq .L12917
  ldr r2, [r1, #24]
  orr r4, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L12917:
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  beq .L12921
  ldr r2, [r1, #20]
  orr r4, r6, r3
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, r4
  orrne r2, r5, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L12921:
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  beq .L12925
  ldr r2, [r1, #16]
  orr r4, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L12925:
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  beq .L12929
  ldr r2, [r1, #12]
  orr r4, r6, r3
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, r4
  orrne r2, r5, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L12929:
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  beq .L12933
  ldr r2, [r1, #8]
  orr r4, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L12933:
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  beq .L12937
  ldr r2, [r1, #4]
  orr r4, r6, r3
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, r4
  orrne r2, r5, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L12937:
  movs  r3, lr, lsr #28
  beq .L12911
  ldr r2, [r1, #0]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L12911:
  add ip, ip, #1
  cmp r7, ip
  bne .L13654
  b .L12455
.L12537:
  ldr lr, [sp, #8]
  add r3, r5, r8
  cmp lr, r3
  bls .L13655
  cmp r8, #0
  add r3, r8, #7
  movge r3, r8
  movs  r7, r3, asr #3
  beq .L12455
  ldr lr, [sp, #4]
  mov r0, #0
  add r1, lr, r5, asl #2
  b .L12706
.L13656:
  add ip, ip, #32
  add r1, r1, #32
.L12706:
  ldr lr, [ip, #0]
  cmp lr, #0
  beq .L12707
  ands  r3, lr, #15
  beq .L12709
  ldr r2, [r1, #0]
  orr r4, r6, r3
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, r4
  orrne r2, r5, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L12709:
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  beq .L12713
  ldr r2, [r1, #4]
  orr r4, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L12713:
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  beq .L12717
  ldr r2, [r1, #8]
  orr r4, r6, r3
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, r4
  orrne r2, r5, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L12717:
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  beq .L12721
  ldr r2, [r1, #12]
  orr r4, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L12721:
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  beq .L12725
  ldr r2, [r1, #16]
  orr r4, r6, r3
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, r4
  orrne r2, r5, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L12725:
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  beq .L12729
  ldr r2, [r1, #20]
  orr r4, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L12729:
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  beq .L12733
  ldr r2, [r1, #24]
  orr r4, r6, r3
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, r4
  orrne r2, r5, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L12733:
  movs  r3, lr, lsr #28
  beq .L12707
  ldr r2, [r1, #28]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L12707:
  add r0, r0, #1
  cmp r7, r0
  bne .L13656
  b .L12455
.L13643:
  add sp, sp, #88
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_color32_2D
.L13655:
  rsb r0, r5, lr
  cmp r0, #0
  ble .L12455
  ldr r1, [sp, #4]
  movs  sl, r0, lsr #3
  add r8, r1, r5, asl #2
  beq .L12661
  mov r4, r8
  mov r7, ip
  mov r1, #0
.L12663:
  ldr lr, [r7, #0]
  cmp lr, #0
  beq .L12664
  ands  r3, lr, #15
  beq .L12666
  ldr r2, [r4, #0]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L12666:
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  beq .L12670
  ldr r2, [r4, #4]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L12670:
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  beq .L12674
  ldr r2, [r4, #8]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L12674:
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  beq .L12678
  ldr r2, [r4, #12]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L12678:
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  beq .L12682
  ldr r2, [r4, #16]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #16]
  streq r3, [r4, #16]
.L12682:
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  beq .L12686
  ldr r2, [r4, #20]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #20]
  streq r3, [r4, #20]
.L12686:
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  beq .L12690
  ldr r2, [r4, #24]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #24]
  streq r3, [r4, #24]
.L12690:
  movs  r3, lr, lsr #28
  beq .L12664
  ldr r2, [r4, #28]
  orr lr, r6, r3
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r5, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #28]
  streq r3, [r4, #28]
.L12664:
  add r1, r1, #1
  cmp sl, r1
  add r7, r7, #32
  add r4, r4, #32
  bne .L12663
  mov r3, sl, asl #5
  add ip, ip, r3
  add r8, r8, r3
.L12661:
  ands  r4, r0, #7
  beq .L12455
  ldr ip, [ip, #0]
  mov lr, #0
.L12699:
  ands  r3, ip, #15
  beq .L12700
  ldr r1, [r8, #0]
  ldr sl, [sp, #24]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, sl, r2
  mov r3, r3, asl #16
  orr r2, sl, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r8, #0]
  streq r2, [r8, #0]
.L12700:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, lsr #4
  add r8, r8, #4
  bne .L12699
  b .L12455
.L13653:
  rsb sl, r5, ip
  cmp sl, #0
  ble .L12455
  ldr lr, [sp, #4]
  movs  ip, sl, lsr #3
  add r8, lr, r5, asl #2
  beq .L12865
  mov r4, r8
  mov r7, r0
  mov r1, #0
.L12867:
  ldr lr, [r7, #0]
  cmp lr, #0
  beq .L12868
  ands  r3, lr, #15
  beq .L12870
  ldr r2, [r4, #28]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #28]
  streq r3, [r4, #28]
.L12870:
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  beq .L12874
  ldr r2, [r4, #24]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #24]
  streq r3, [r4, #24]
.L12874:
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  beq .L12878
  ldr r2, [r4, #20]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #20]
  streq r3, [r4, #20]
.L12878:
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  beq .L12882
  ldr r2, [r4, #16]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #16]
  streq r3, [r4, #16]
.L12882:
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  beq .L12886
  ldr r2, [r4, #12]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L12886:
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  beq .L12890
  ldr r2, [r4, #8]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L12890:
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  beq .L12894
  ldr r2, [r4, #4]
  orr r5, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L12894:
  movs  r3, lr, lsr #28
  beq .L12868
  ldr r2, [r4, #0]
  orr lr, r6, r3
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r5, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L12868:
  add r1, r1, #1
  cmp ip, r1
  sub r7, r7, #32
  add r4, r4, #32
  bne .L12867
  rsb r3, ip, ip, asl #27
  add r0, r0, r3, asl #5
  add r8, r8, ip, asl #5
.L12865:
  ands  r4, sl, #7
  beq .L12455
  ldr ip, [r0, #0]
  mov lr, #0
.L12903:
  movs  r3, ip, lsr #28
  beq .L12904
  ldr r1, [r8, #0]
  ldr sl, [sp, #24]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, sl, r2
  mov r3, r3, asl #16
  orr r2, sl, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r8, #0]
  streq r2, [r8, #0]
.L12904:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, asl #4
  add r8, r8, #4
  bne .L12903
  b .L12455
.L13651:
  rsb r8, r5, r9
  cmp r8, #0
  ble .L12455
  ldr sl, [sp, #4]
  movs  r7, r8, lsr #3
  add r6, sl, r5, asl #2
  beq .L13178
  ldr r3, .L13672
  mov lr, r6
  add r0, r0, r3
  mov r5, ip
  mov r1, #0
.L13180:
  ldr r2, [r5, #0]
  cmp r2, #0
  beq .L13181
  ands  r4, r2, #255
  beq .L13183
  ldr r3, [lr, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #0]
  streq r3, [lr, #0]
.L13183:
  mov r3, r2, lsr #8
  ands  r4, r3, #255
  beq .L13187
  ldr r3, [lr, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #4]
  streq r3, [lr, #4]
.L13187:
  mov r3, r2, lsr #16
  ands  r4, r3, #255
  beq .L13191
  ldr r3, [lr, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #8]
  streq r3, [lr, #8]
.L13191:
  movs  r4, r2, lsr #24
  beq .L13181
  ldr r2, [lr, #12]
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r4
  orrne r2, r9, r4
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [lr, #12]
  streq r3, [lr, #12]
.L13181:
  ldr r2, [r0, #-60]
  cmp r2, #0
  beq .L13198
  ands  r4, r2, #255
  beq .L13200
  ldr r3, [lr, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #16]
  streq r3, [lr, #16]
.L13200:
  mov r3, r2, lsr #8
  ands  r4, r3, #255
  beq .L13204
  ldr r3, [lr, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #20]
  streq r3, [lr, #20]
.L13204:
  mov r3, r2, lsr #16
  ands  r4, r3, #255
  beq .L13208
  ldr r3, [lr, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r4, r3
  strne r3, [lr, #24]
  streq r3, [lr, #24]
.L13208:
  movs  r2, r2, lsr #24
  beq .L13198
  ldr r3, [lr, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r4, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [lr, #28]
  streq r3, [lr, #28]
.L13198:
  add r1, r1, #1
  cmp r7, r1
  add r5, r5, #64
  add lr, lr, #32
  add r0, r0, #64
  bne .L13180
  add ip, ip, r7, asl #6
  add r6, r6, r7, asl #5
.L13178:
  ands  r4, r8, #7
  beq .L12455
  cmp r4, #3
  ldrls ip, [ip, #0]
  bls .L13237
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L13219
  ands  r1, r2, #255
  beq .L13221
  ldr r3, [r6, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq lr, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r6, #0]
  streq r3, [r6, #0]
.L13221:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L13225
  ldr r3, [r6, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r0, [sp, #24]
  ldreq r5, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r5, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r6, #4]
  streq r3, [r6, #4]
.L13225:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L13229
  ldr r3, [r6, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r7, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r6, #8]
  streq r3, [r6, #8]
.L13229:
  movs  r1, r2, lsr #24
  beq .L13219
  ldr r2, [r6, #12]
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r1
  orrne r2, r9, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r6, #12]
  streq r3, [r6, #12]
.L13219:
  subs  r4, r4, #4
  ldr ip, [ip, #4]
  addne r6, r6, #16
  beq .L12455
.L13237:
  mov lr, #0
.L13238:
  ands  r3, ip, #255
  beq .L13239
  ldr r2, [r6, #0]
  ldr r0, [sp, #24]
  tst r2, #256
  orr r1, r0, r3
  orr r0, r0, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [r6, #0]
  streq r1, [r6, #0]
.L13239:
  add lr, lr, #1
  cmp lr, r4
  mov ip, ip, lsr #8
  add r6, r6, #4
  bcc .L13238
  b .L12455
.L13649:
  rsb sl, r5, r9
  cmp sl, #0
  ble .L12455
  ldr lr, [sp, #4]
  movs  r8, sl, lsr #3
  add r7, lr, r5, asl #2
  beq .L13514
  ldr r3, .L13672+4
  mov r4, r7
  add r0, r0, r3
  mov r6, ip
  mov r1, #0
.L13516:
  ldr r2, [r0, #68]
  cmp r2, #0
  beq .L13517
  ands  lr, r2, #255
  beq .L13519
  ldr r3, [r4, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L13519:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L13523
  ldr r3, [r4, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L13523:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L13527
  ldr r3, [r4, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L13527:
  movs  r2, r2, lsr #24
  beq .L13517
  ldr r3, [r4, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne lr, [sp, #24]
  ldreq r5, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r5, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L13517:
  ldr lr, [r6, #0]
  cmp lr, #0
  beq .L13534
  ands  r5, lr, #255
  beq .L13536
  ldr r2, [r4, #28]
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, r5
  orrne r2, r9, r5
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #28]
  streq r3, [r4, #28]
.L13536:
  mov r3, lr, lsr #8
  ands  r2, r3, #255
  beq .L13540
  ldr r3, [r4, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r4, #24]
  streq r3, [r4, #24]
.L13540:
  mov r3, lr, lsr #16
  ands  r2, r3, #255
  beq .L13544
  ldr r3, [r4, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r4, #20]
  streq r3, [r4, #20]
.L13544:
  movs  lr, lr, lsr #24
  beq .L13534
  ldr r2, [r4, #16]
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r9, lr
  orrne r2, r5, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r4, #16]
  streq r3, [r4, #16]
.L13534:
  add r1, r1, #1
  cmp r8, r1
  sub r6, r6, #64
  add r4, r4, #32
  sub r0, r0, #64
  bne .L13516
  rsb r3, r8, r8, asl #26
  add ip, ip, r3, asl #6
  add r7, r7, r8, asl #5
.L13514:
  ands  r4, sl, #7
  beq .L12455
  cmp r4, #3
  ldrls ip, [ip, #4]
  bls .L13573
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L13555
  ands  r1, r2, #255
  beq .L13557
  ldr r3, [r7, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq lr, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r7, #12]
  streq r3, [r7, #12]
.L13557:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L13561
  ldr r3, [r7, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r0, [sp, #24]
  ldreq r5, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r5, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r7, #8]
  streq r3, [r7, #8]
.L13561:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L13565
  ldr r3, [r7, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r7, #4]
  streq r3, [r7, #4]
.L13565:
  movs  r2, r2, lsr #24
  beq .L13555
  ldr r3, [r7, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r7, #0]
  streq r3, [r7, #0]
.L13555:
  subs  r4, r4, #4
  ldr ip, [ip, #0]
  addne r7, r7, #16
  beq .L12455
.L13573:
  mov lr, #0
.L13574:
  movs  r3, ip, lsr #24
  beq .L13575
  ldr r2, [r7, #0]
  ldr r0, [sp, #24]
  tst r2, #256
  orr r1, r0, r3
  orr r0, r0, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [r7, #0]
  streq r1, [r7, #0]
.L13575:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, asl #8
  add r7, r7, #4
  bhi .L13574
  b .L12455
.L13284:
  mov r3, r0, lsr #3
  ands  r2, r0, #7
  sub r4, ip, r3, asl #6
  ldreq r0, [sp, #60]
  beq .L13434
  cmp r2, #3
  rsb r6, r2, #8
  bhi .L13657
  subs  r8, r6, #4
  ldr r1, [r4, #4]
  ldreq r1, [sp, #60]
  beq .L13449
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, asl r3
  ldr lr, [sp, #60]
  mov r5, #0
.L13450:
  movs  r3, ip, lsr #24
  beq .L13451
  ldr r2, [lr, #0]
  ldr r9, [sp, #24]
  tst r2, #256
  orr r1, r9, r3
  orr r0, r9, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13451:
  add r5, r5, #1
  cmp r8, r5
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L13450
  ldr sl, [sp, #60]
  add r3, sl, r6, asl #2
  sub r1, r3, #16
.L13449:
  ldr r2, [r4, #0]
  cmp r2, #0
  beq .L13457
  ands  r0, r2, #255
  beq .L13459
  ldr r3, [r1, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne ip, [sp, #24]
  ldreq lr, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, ip, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L13459:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L13463
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r6, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L13463:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L13467
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L13467:
  movs  r2, r2, lsr #24
  beq .L13457
  ldr r3, [r1, #0]
  tst r3, #256
  beq .L13472
  mov r3, r3, lsr #16
  ldr sl, [sp, #24]
  mov r3, r3, asl #16
  orr r3, sl, r3
  orr r3, r2, r3
  str r3, [r1, #0]
.L13457:
  add r0, r1, #16
.L13439:
  sub r4, r4, #64
.L13434:
  movs  r5, r7, lsr #3
  beq .L12455
  mov lr, #0
  b .L13475
.L13658:
  sub r4, r4, #64
  add r0, r0, #32
.L13475:
  ldr r2, [r4, #4]
  cmp r2, #0
  beq .L13476
  ands  r1, r2, #255
  beq .L13478
  ldr r3, [r0, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r6, [sp, #24]
  ldreq r7, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r6, r3
  orreq r3, r7, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L13478:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L13482
  ldr r3, [r0, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L13482:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L13486
  ldr r3, [r0, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne sl, [sp, #24]
  ldreq ip, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, sl, r3
  orreq r3, ip, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r1, r3
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L13486:
  movs  r2, r2, lsr #24
  beq .L13476
  ldr r3, [r0, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r1, [sp, #24]
  ldreq r6, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L13476:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L13493
  ands  ip, r1, #255
  beq .L13495
  ldr r2, [r0, #28]
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, ip
  orrne r2, r7, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L13495:
  mov r3, r1, lsr #8
  ands  r2, r3, #255
  beq .L13499
  ldr r3, [r0, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L13499:
  mov r3, r1, lsr #16
  ands  r2, r3, #255
  beq .L13503
  ldr r3, [r0, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne ip, [sp, #24]
  ldreq r6, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, ip, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L13503:
  movs  r1, r1, lsr #24
  beq .L13493
  ldr r2, [r0, #16]
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, r1
  orrne r2, r7, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L13493:
  add lr, lr, #1
  cmp lr, r5
  bne .L13658
  b .L12455
.L12948:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  add r4, ip, r3, asl #6
  ldreq r1, [sp, #60]
  beq .L13098
  cmp r2, #3
  rsb r6, r2, #8
  bhi .L13659
  subs  r8, r6, #4
  ldr r1, [r4, #0]
  ldreq r1, [sp, #60]
  beq .L13113
  mov r3, r2, asl #3
  mov ip, r1, lsr r3
  ldr lr, [sp, #60]
  mov r5, #0
.L13114:
  ands  r3, ip, #255
  beq .L13115
  ldr r2, [lr, #0]
  ldr r9, [sp, #24]
  tst r2, #256
  orr r1, r9, r3
  orr r0, r9, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13115:
  add r5, r5, #1
  cmp r8, r5
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L13114
  ldr sl, [sp, #60]
  add r3, sl, r6, asl #2
  sub r1, r3, #16
.L13113:
  ldr r2, [r4, #4]
  cmp r2, #0
  beq .L13121
  ands  r0, r2, #255
  beq .L13123
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne ip, [sp, #24]
  ldreq lr, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, ip, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L13123:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L13127
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r6, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L13127:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L13131
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L13131:
  movs  r2, r2, lsr #24
  beq .L13121
  ldr r3, [r1, #12]
  tst r3, #256
  beq .L13136
  mov r3, r3, lsr #16
  ldr sl, [sp, #24]
  mov r3, r3, asl #16
  orr r3, sl, r3
  orr r3, r2, r3
  str r3, [r1, #12]
.L13121:
  add r1, r1, #16
.L13103:
  add r4, r4, #64
.L13098:
  movs  lr, r7, lsr #3
  beq .L12455
  mov ip, #0
  b .L13139
.L13660:
  add r4, r4, #64
  add r1, r1, #32
.L13139:
  ldr r2, [r4, #0]
  cmp r2, #0
  beq .L13140
  ands  r0, r2, #255
  beq .L13142
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r6, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L13142:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L13146
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r7, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L13146:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L13150
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L13150:
  movs  r0, r2, lsr #24
  beq .L13140
  ldr r2, [r1, #12]
  tst r2, #256
  ldrne r5, [sp, #24]
  ldreq r6, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r6, r0
  orrne r2, r5, r0
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L13140:
  ldr r2, [r4, #4]
  cmp r2, #0
  beq .L13157
  ands  r0, r2, #255
  beq .L13159
  ldr r3, [r1, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r7, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L13159:
  mov r3, r2, lsr #8
  ands  r0, r3, #255
  beq .L13163
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, sl, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L13163:
  mov r3, r2, lsr #16
  ands  r0, r3, #255
  beq .L13167
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #24]
  ldreq r6, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L13167:
  movs  r2, r2, lsr #24
  beq .L13157
  ldr r3, [r1, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r7, r3
  orreq r3, r8, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L13157:
  add ip, ip, #1
  cmp ip, lr
  bne .L13660
  b .L12455
.L12744:
  ands  r2, lr, #7
  mov r3, lr, lsr #3
  sub ip, r0, r3, asl #5
  ldreq r0, [sp, #60]
  beq .L12815
  rsbs  r8, r2, #8
  ldr r1, [ip, #0]
  ldreq r0, [sp, #60]
  beq .L12818
  mov r3, r2, asl #2
  mov lr, r1, asl r3
  ldr r4, [sp, #60]
  mov r5, #0
.L12819:
  movs  r3, lr, lsr #28
  beq .L12820
  ldr r1, [r4, #0]
  orr r2, r6, r3
  ldr r3, [sp, #24]
  ldr r9, [sp, #24]
  orr r0, r3, r2
  mov r3, r1, lsr #16
  mov r3, r3, asl #16
  orr r2, r9, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L12820:
  add r5, r5, #1
  cmp r5, r8
  mov lr, lr, asl #4
  add r4, r4, #4
  bne .L12819
  ldr sl, [sp, #60]
  add r0, sl, r8, asl #2
.L12818:
  sub ip, ip, #32
.L12815:
  movs  r5, r7, lsr #3
  beq .L12455
  mov r4, #0
  b .L12827
.L13673:
  .align  2
.L13672:
  .word vram+65600
  .word vram+65472
.L13661:
  sub ip, ip, #32
  add r0, r0, #32
.L12827:
  ldr r1, [ip, #0]
  cmp r1, #0
  beq .L12828
  ands  r3, r1, #15
  beq .L12830
  ldr r2, [r0, #28]
  orr lr, r6, r3
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, lr
  orrne r2, r7, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L12830:
  mov r3, r1, lsr #4
  ands  r3, r3, #15
  beq .L12834
  ldr r2, [r0, #24]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L12834:
  mov r3, r1, lsr #8
  ands  r3, r3, #15
  beq .L12838
  ldr r2, [r0, #20]
  orr lr, r6, r3
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, lr
  orrne r2, r7, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L12838:
  mov r3, r1, lsr #12
  ands  r3, r3, #15
  beq .L12842
  ldr r2, [r0, #16]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L12842:
  mov r3, r1, lsr #16
  ands  r3, r3, #15
  beq .L12846
  ldr r2, [r0, #12]
  orr lr, r6, r3
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, lr
  orrne r2, r7, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L12846:
  mov r3, r1, lsr #20
  ands  r3, r3, #15
  beq .L12850
  ldr r2, [r0, #8]
  orr lr, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, lr
  orrne r2, r9, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L12850:
  mov r3, r1, lsr #24
  ands  r3, r3, #15
  beq .L12854
  ldr r2, [r0, #4]
  orr lr, r6, r3
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, lr
  orrne r2, r7, lr
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L12854:
  movs  r3, r1, lsr #28
  beq .L12828
  ldr r2, [r0, #0]
  orr r1, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r1
  orrne r2, r9, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L12828:
  add r4, r4, #1
  cmp r5, r4
  bne .L13661
  b .L12455
.L12540:
  mov r3, lr, lsr #3
  mov r0, r3, asl #5
  ands  r3, lr, #7
  add r5, ip, r0
  ldreq r0, [sp, #60]
  beq .L12611
  rsbs  r8, r3, #8
  ldr r0, [ip, r0]
  ldreq r0, [sp, #60]
  beq .L12614
  mov r3, r3, asl #2
  mov ip, r0, lsr r3
  ldr lr, [sp, #60]
  mov r4, #0
.L12615:
  ands  r3, ip, #15
  beq .L12616
  ldr r1, [lr, #0]
  orr r2, r6, r3
  ldr r3, [sp, #24]
  ldr r9, [sp, #24]
  orr r0, r3, r2
  mov r3, r1, lsr #16
  mov r3, r3, asl #16
  orr r2, r9, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L12616:
  add r4, r4, #1
  cmp r8, r4
  mov ip, ip, lsr #4
  add lr, lr, #4
  bne .L12615
  ldr sl, [sp, #60]
  add r0, sl, r8, asl #2
.L12614:
  add r5, r5, #32
.L12611:
  movs  r4, r7, lsr #3
  beq .L12455
  mov lr, #0
  b .L12623
.L13662:
  add r5, r5, #32
  add r0, r0, #32
.L12623:
  ldr r1, [r5, #0]
  cmp r1, #0
  beq .L12624
  ands  r3, r1, #15
  beq .L12626
  ldr r2, [r0, #0]
  orr ip, r6, r3
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, ip
  orrne r2, r7, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L12626:
  mov r3, r1, lsr #4
  ands  r3, r3, #15
  beq .L12630
  ldr r2, [r0, #4]
  orr ip, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L12630:
  mov r3, r1, lsr #8
  ands  r3, r3, #15
  beq .L12634
  ldr r2, [r0, #8]
  orr ip, r6, r3
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, ip
  orrne r2, r7, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L12634:
  mov r3, r1, lsr #12
  ands  r3, r3, #15
  beq .L12638
  ldr r2, [r0, #12]
  orr ip, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L12638:
  mov r3, r1, lsr #16
  ands  r3, r3, #15
  beq .L12642
  ldr r2, [r0, #16]
  orr ip, r6, r3
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, ip
  orrne r2, r7, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L12642:
  mov r3, r1, lsr #20
  ands  r3, r3, #15
  beq .L12646
  ldr r2, [r0, #20]
  orr ip, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, ip
  orrne r2, r9, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L12646:
  mov r3, r1, lsr #24
  ands  r3, r3, #15
  beq .L12650
  ldr r2, [r0, #24]
  orr ip, r6, r3
  tst r2, #256
  ldrne r7, [sp, #24]
  ldreq r8, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, r8, ip
  orrne r2, r7, ip
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L12650:
  movs  r3, r1, lsr #28
  beq .L12624
  ldr r2, [r0, #28]
  orr r1, r6, r3
  tst r2, #256
  ldrne r9, [sp, #24]
  ldreq sl, [sp, #24]
  movne r3, r2, lsr #16
  movne r3, r3, asl #16
  orreq r3, sl, r1
  orrne r2, r9, r1
  orrne r3, r3, r2
  orreq r3, r3, r2, asl #16
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L12624:
  add lr, lr, #1
  cmp r4, lr
  bne .L13662
  b .L12455
.L12504:
  mov r1, r2
  b .L13633
.L12746:
  ldr r2, [sp, #80]
  rsb r7, r4, #8
  cmp r2, r7
  blt .L13663
  cmp r7, #0
  ldr r2, [ip, #0]
  ldreq r5, [sp, #60]
  beq .L12761
  mov r3, r4, asl #2
  mov lr, r2, asl r3
  ldr r4, [sp, #60]
  mov r5, #0
.L12762:
  movs  r3, lr, lsr #28
  beq .L12763
  ldr r1, [r4, #0]
  ldr r8, [sp, #24]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r8, r2
  mov r3, r3, asl #16
  orr r2, r8, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L12763:
  add r5, r5, #1
  cmp r7, r5
  mov lr, lr, asl #4
  add r4, r4, #4
  bne .L12762
  ldr r9, [sp, #60]
  add r5, r9, r7, asl #2
.L12761:
  ldr lr, [sp, #80]
  sub ip, ip, #32
  rsb sl, r7, lr
  b .L12748
.L13286:
  ldr r3, [sp, #80]
  rsb r5, lr, #8
  cmp r3, r5
  blt .L13664
  cmp lr, #3
  bls .L13327
  cmp r5, #0
  ldr r2, [r8, #0]
  ldreq r4, [sp, #60]
  beq .L13331
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #60]
  mov r4, #0
.L13332:
  movs  r3, ip, lsr #24
  beq .L13333
  ldr r2, [lr, #0]
  ldr r7, [sp, #24]
  tst r2, #256
  orr r1, r7, r3
  orr r0, r7, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13333:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L13332
  ldr ip, [sp, #60]
  add r4, ip, r5, asl #2
.L13331:
  ldr r0, [sp, #80]
  sub r8, r8, #64
  rsb r7, r5, r0
  b .L13288
.L12950:
  ldr r2, [sp, #80]
  rsb r5, lr, #8
  cmp r2, r5
  blt .L13665
  cmp lr, #3
  bls .L12991
  cmp r5, #0
  ldr r2, [r7, #4]
  ldreq r4, [sp, #60]
  beq .L12995
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, lsr r3
  ldr lr, [sp, #60]
  mov r4, #0
.L12996:
  ands  r3, ip, #255
  beq .L12997
  ldr r2, [lr, #0]
  ldr r8, [sp, #24]
  tst r2, #256
  orr r1, r8, r3
  orr r0, r8, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12997:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L12996
  ldr ip, [sp, #60]
  add r4, ip, r5, asl #2
.L12995:
  ldr r0, [sp, #80]
  add r7, r7, #64
  rsb r6, r5, r0
  b .L12952
.L12542:
  ldr r8, [sp, #80]
  rsb r5, r3, #8
  cmp r8, r5
  blt .L13666
  cmp r5, #0
  ldr r2, [r7, #0]
  ldreq r4, [sp, #60]
  beq .L12557
  mov r3, r3, asl #2
  mov ip, r2, lsr r3
  ldr lr, [sp, #60]
  mov r4, #0
.L12558:
  ands  r3, ip, #15
  beq .L12559
  ldr r1, [lr, #0]
  orr r2, r6, r3
  ldr r3, [sp, #24]
  ldr r8, [sp, #24]
  orr r0, r3, r2
  mov r3, r1, lsr #16
  mov r3, r3, asl #16
  orr r2, r8, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L12559:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #4
  add lr, lr, #4
  bne .L12558
  ldr r9, [sp, #60]
  add r4, r9, r5, asl #2
.L12557:
  ldr ip, [sp, #80]
  add r7, r7, #32
  rsb sl, r5, ip
  b .L12544
.L13659:
  cmp r6, #0
  ldr r1, [r4, #4]
  ldreq r1, [sp, #60]
  beq .L13103
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, lsr r3
  ldr lr, [sp, #60]
  mov r5, #0
.L13104:
  ands  r3, ip, #255
  beq .L13105
  ldr r2, [lr, #0]
  ldr r8, [sp, #24]
  tst r2, #256
  orr r1, r8, r3
  orr r0, r8, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13105:
  add r5, r5, #1
  cmp r5, r6
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L13104
  ldr ip, [sp, #60]
  add r4, r4, #64
  add r1, ip, r6, asl #2
  b .L13098
.L13666:
  cmp r8, #0
  ble .L12455
  ldr r2, [ip, r0]
  mov r3, r3, asl #2
  mov ip, r2, lsr r3
  ldr lr, [sp, #60]
  mov r4, #0
.L12549:
  ands  r3, ip, #15
  beq .L12550
  ldr r1, [lr, #0]
  ldr r9, [sp, #24]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r9, r2
  mov r3, r3, asl #16
  orr r2, r9, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L12550:
  ldr sl, [sp, #80]
  add r4, r4, #1
  cmp sl, r4
  mov ip, ip, lsr #4
  add lr, lr, #4
  bne .L12549
  b .L12455
.L13657:
  cmp r6, #0
  ldr r1, [r4, #0]
  ldreq r0, [sp, #60]
  beq .L13439
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, asl r3
  ldr lr, [sp, #60]
  mov r5, #0
.L13440:
  movs  r3, ip, lsr #24
  beq .L13441
  ldr r2, [lr, #0]
  ldr r8, [sp, #24]
  tst r2, #256
  orr r1, r8, r3
  orr r0, r8, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13441:
  add r5, r5, #1
  cmp r5, r6
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L13440
  ldr ip, [sp, #60]
  sub r4, r4, #64
  add r0, ip, r6, asl #2
  b .L13434
.L13664:
  cmp r3, #0
  ble .L12455
  cmp lr, #3
  bls .L13292
  mov r3, lr, asl #3
  ldr r2, [r8, #0]
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #60]
  mov r4, #0
.L13295:
  movs  r3, ip, lsr #24
  beq .L13296
  ldr r2, [lr, #0]
  ldr r5, [sp, #24]
  tst r2, #256
  orr r1, r5, r3
  orr r0, r5, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13296:
  ldr r6, [sp, #80]
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L13295
  b .L12455
.L13665:
  cmp r2, #0
  ble .L12455
  cmp lr, #3
  bls .L12956
  mov r3, lr, asl #3
  ldr r2, [r7, #4]
  sub r3, r3, #32
  mov ip, r2, lsr r3
  ldr lr, [sp, #60]
  mov r4, #0
.L12959:
  ands  r3, ip, #255
  beq .L12960
  ldr r2, [lr, #0]
  ldr r5, [sp, #24]
  tst r2, #256
  orr r1, r5, r3
  orr r0, r5, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12960:
  ldr r6, [sp, #80]
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L12959
  b .L12455
.L13663:
  cmp r2, #0
  ble .L12455
  ldr r2, [ip, #0]
  mov r3, r4, asl #2
  mov ip, r2, asl r3
  ldr lr, [sp, #60]
  mov r4, #0
.L12753:
  movs  r3, ip, lsr #28
  beq .L12754
  ldr r1, [lr, #0]
  orr r2, r6, r3
  ldr r3, [sp, #24]
  ldr r5, [sp, #24]
  orr r0, r3, r2
  mov r3, r1, lsr #16
  mov r3, r3, asl #16
  orr r2, r5, r2
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L12754:
  ldr r7, [sp, #80]
  add r4, r4, #1
  cmp r7, r4
  mov ip, ip, asl #4
  add lr, lr, #4
  bne .L12753
  b .L12455
.L13669:
  mov r6, #0
  b .L12520
.L13668:
  mov r4, #0
  b .L12480
.L13327:
  subs  r6, r5, #4
  ldr r2, [r8, #4]
  ldreq r2, [sp, #60]
  beq .L13341
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #60]
  mov r4, #0
.L13342:
  movs  r3, ip, lsr #24
  beq .L13343
  ldr r2, [lr, #0]
  ldr r9, [sp, #24]
  tst r2, #256
  orr r1, r9, r3
  orr r0, r9, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13343:
  add r4, r4, #1
  cmp r4, r6
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L13342
  ldr sl, [sp, #60]
  add r3, sl, r5, asl #2
  sub r2, r3, #16
.L13341:
  ldr r1, [r8, #0]
  cmp r1, #0
  beq .L13349
  ands  r0, r1, #255
  beq .L13351
  ldr r3, [r2, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne ip, [sp, #24]
  ldreq lr, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, ip, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #12]
  streq r3, [r2, #12]
.L13351:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L13355
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r4, [sp, #24]
  ldreq r6, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L13355:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L13359
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r7, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r7, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L13359:
  movs  r1, r1, lsr #24
  beq .L13349
  ldr r3, [r2, #0]
  tst r3, #256
  beq .L13364
  mov r3, r3, lsr #16
  ldr sl, [sp, #24]
  mov r3, r3, asl #16
  orr r3, sl, r3
  orr r3, r1, r3
  str r3, [r2, #0]
.L13349:
  add r4, r2, #16
  b .L13331
.L12991:
  subs  r6, r5, #4
  ldr r2, [r7, #0]
  ldreq r2, [sp, #60]
  beq .L13005
  mov r3, lr, asl #3
  mov ip, r2, lsr r3
  ldr lr, [sp, #60]
  mov r4, #0
.L13006:
  ands  r3, ip, #255
  beq .L13007
  ldr r2, [lr, #0]
  ldr r9, [sp, #24]
  tst r2, #256
  orr r1, r9, r3
  orr r0, r9, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13007:
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L13006
  ldr sl, [sp, #60]
  add r3, sl, r5, asl #2
  sub r2, r3, #16
.L13005:
  ldr r1, [r7, #4]
  cmp r1, #0
  beq .L13013
  ands  r0, r1, #255
  beq .L13015
  ldr r3, [r2, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne ip, [sp, #24]
  ldreq lr, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, ip, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #0]
  streq r3, [r2, #0]
.L13015:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L13019
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r4, [sp, #24]
  ldreq r6, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r6, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L13019:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L13023
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r8, [sp, #24]
  ldreq r9, [sp, #24]
  movne r3, r3, asl #16
  orrne r3, r8, r3
  orreq r3, r9, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r0, r3
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L13023:
  movs  r1, r1, lsr #24
  beq .L13013
  ldr r3, [r2, #12]
  tst r3, #256
  beq .L13028
  mov r3, r3, lsr #16
  ldr sl, [sp, #24]
  mov r3, r3, asl #16
  orr r3, sl, r3
  orr r3, r1, r3
  str r3, [r2, #12]
.L13013:
  add r4, r2, #16
  b .L12995
.L13667:
  mov lr, r7
  b .L13631
.L13292:
  ldr r7, [sp, #80]
  mov r3, lr, asl #3
  ldr r1, [r8, #4]
  add r2, r7, lr
  sub r3, r3, #32
  cmp r2, #4
  mov ip, r1, asl r3
  bhi .L13301
  cmp r7, #0
  ldrne lr, [sp, #60]
  movne r4, #0
  beq .L12455
.L13321:
  movs  r3, ip, lsr #24
  beq .L13322
  ldr r2, [lr, #0]
  ldr r5, [sp, #24]
  tst r2, #256
  orr r1, r5, r3
  orr r0, r5, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13322:
  ldr r6, [sp, #80]
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L13321
  b .L12455
.L12956:
  ldr r8, [sp, #80]
  ldr r3, [r7, #0]
  add r2, r8, lr
  mov r1, lr, asl #3
  cmp r2, #4
  mov ip, r3, lsr r1
  bhi .L12965
  cmp r8, #0
  ldrne lr, [sp, #60]
  movne r4, #0
  beq .L12455
.L12985:
  ands  r3, ip, #255
  beq .L12986
  ldr r2, [lr, #0]
  ldr r5, [sp, #24]
  tst r2, #256
  orr r1, r5, r3
  orr r0, r5, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12986:
  ldr r6, [sp, #80]
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L12985
  b .L12455
.L12965:
  rsbs  r5, lr, #4
  ldreq lr, [sp, #60]
  beq .L12970
  ldr lr, [sp, #60]
  mov r4, #0
.L12971:
  ands  r3, ip, #255
  beq .L12972
  ldr r2, [lr, #0]
  ldr r9, [sp, #24]
  tst r2, #256
  orr r1, r9, r3
  orr r0, r9, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12972:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L12971
  ldr sl, [sp, #60]
  add lr, sl, r5, asl #2
.L12970:
  ldr ip, [sp, #80]
  subs  r5, ip, r5
  ldr ip, [r7, #4]
  beq .L12455
  mov r4, #0
.L12979:
  ands  r3, ip, #255
  beq .L12980
  ldr r2, [lr, #0]
  ldr r0, [sp, #24]
  tst r2, #256
  orr r1, r0, r3
  orr r0, r0, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L12980:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L12979
  b .L12455
.L13301:
  rsbs  r5, lr, #4
  ldreq lr, [sp, #60]
  beq .L13306
  ldr lr, [sp, #60]
  mov r4, #0
.L13307:
  movs  r3, ip, lsr #24
  beq .L13308
  ldr r2, [lr, #0]
  ldr r9, [sp, #24]
  tst r2, #256
  orr r1, r9, r3
  orr r0, r9, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13308:
  add r4, r4, #1
  cmp r4, r5
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L13307
  ldr sl, [sp, #60]
  add lr, sl, r5, asl #2
.L13306:
  ldr ip, [sp, #80]
  subs  r5, ip, r5
  ldr ip, [r8, #0]
  beq .L12455
  mov r4, #0
.L13315:
  movs  r3, ip, lsr #24
  beq .L13316
  ldr r2, [lr, #0]
  ldr r0, [sp, #24]
  tst r2, #256
  orr r1, r0, r3
  orr r0, r0, r3
  mov r3, r2, lsr #16
  mov r3, r3, asl #16
  orr r3, r3, r1
  orr r1, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r1, [lr, #0]
.L13316:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L13315
  b .L12455
.L13136:
  ldr lr, [sp, #24]
  orr r3, lr, r3, asl #16
  orr r3, r2, r3
  str r3, [r1, #12]
  add r1, r1, #16
  b .L13103
.L13472:
  ldr lr, [sp, #24]
  add r0, r1, #16
  orr r3, lr, r3, asl #16
  orr r3, r2, r3
  str r3, [r1, #0]
  b .L13439
.L13364:
  ldr lr, [sp, #24]
  add r4, r2, #16
  orr r3, lr, r3, asl #16
  orr r3, r1, r3
  str r3, [r2, #0]
  b .L13331
.L13028:
  ldr lr, [sp, #24]
  add r4, r2, #16
  orr r3, lr, r3, asl #16
  orr r3, r1, r3
  str r3, [r2, #12]
  b .L12995
  .size render_scanline_obj_alpha_obj_2D, .-render_scanline_obj_alpha_obj_2D
  .align  2
  .global render_scanline_obj_partial_alpha_1D
  .type render_scanline_obj_partial_alpha_1D, %function
render_scanline_obj_partial_alpha_1D:
  @ args = 0, pretend = 0, frame = 148
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr ip, .L15733
  sub sp, sp, #148
  ldrh  r4, [ip, #6]
  add r0, r0, r0, asl #2
  str r4, [sp, #40]
  ldr r5, [sp, #40]
  ldrh  r4, [ip, #80]
  ldr ip, .L15733+4
  add r0, r5, r0, asl #5
  ldr ip, [ip, r0, asl #2]
  mov lr, r4, lsr #11
  and lr, lr, #2
  mov r4, r4, asl #27
  str ip, [sp, #44]
  orr lr, lr, r4, lsr #31
  cmp ip, #0
  ldr ip, .L15733+8
  mov lr, lr, asl #9
  add r0, ip, r0, asl #7
  orr lr, lr, #256
  str r0, [sp, #48]
  str r1, [sp, #8]
  str r2, [sp, #4]
  str r3, [sp, #0]
  str lr, [sp, #28]
  beq .L15634
  mov ip, #0
  add r7, r3, r1, asl #2
  rsb r8, r1, r2
  str r7, [sp, #108]
  str r8, [sp, #144]
  str ip, [sp, #32]
  mov lr, ip
.L13677:
  ldr r0, [sp, #48]
  ldr r1, .L15733+12
  ldrb  r3, [lr, r0]  @ zero_extendqisi2
  mov r3, r3, asl #3
  ldrh  lr, [r3, r1]
  add r3, r3, r1
  ldrh  r4, [r3, #2]
  mov r0, lr, lsr #12
  and r2, r0, #12
  ldrh  r3, [r3, #4]
  orr r1, r2, r4, lsr #14
  and ip, lr, #255
  mov r2, r4, asl #23
  cmp ip, #160
  str r3, [sp, #36]
  mov r5, r2, asr #23
  ldr r3, .L15733+16
  ldr r2, .L15733+20
  subgt ip, ip, #256
  tst lr, #3072
  ldr r7, [r2, r1, asl #2]
  ldr sl, [r3, r1, asl #2]
  beq .L13680
  tst lr, #256
  beq .L13682
  tst lr, #8192
  beq .L13684
  mov r3, r4, lsr #4
  ldr r4, .L15733+12
  add r2, r7, r7, lsr #31
  and r3, r3, #992
  tst lr, #512
  add r3, r3, r4
  mov lr, r2, asr #1
  add r1, sl, sl, lsr #31
  ldr r2, [sp, #8]
  mov r4, r1, asr #1
  ldrh  r9, [r3, #30]
  ldrh  r8, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq r6, r7
  moveq fp, lr
  moveq r0, r4
  movne r6, r7, asl #1
  movne fp, lr, asl #1
  movne r0, r4, asl #1
  cmp r5, r2
  str r3, [sp, #12]
  bge .L13689
  rsb r2, r5, r2
  rsb r6, r2, r6
  cmp r6, #0
  ble .L13691
  ldr r5, [sp, #8]
  rsb fp, r2, fp
.L13689:
  ldr r2, [sp, #4]
  add r3, r5, r6
  cmp r3, r2
  blt .L13693
  rsb r6, r5, r2
  cmp r6, #0
  ble .L13691
.L13693:
  mov r2, r1, asl #16
  mov r3, r8, asl #16
  mov r2, r2, asr #16
  ldr r8, [sp, #12]
  add r0, ip, r0
  str r2, [sp, #52]
  ldr ip, [sp, #0]
  ldr r2, [sp, #40]
  mov r1, r9, asl #16
  mov lr, lr, asl #8
  cmp r8, #0
  str lr, [sp, #128]
  mov r9, r3, asr #16
  mov r1, r1, asr #16
  mov r4, r4, asl #8
  add r5, ip, r5, asl #2
  rsb lr, r0, r2
  bne .L13695
  mla r3, lr, r1, r4
  mov r2, r3, asr #8
  cmp r2, sl
  bcs .L13691
  cmp r7, #0
  ldr r4, [sp, #36]
  add r3, r7, #7
  movge r3, r7
  mov r1, r4, asl #22
  mov r3, r3, asr #3
  mov r0, r2, lsr #3
  mov r3, r3, asl #1
  mov r1, r1, lsr #22
  mla ip, r3, r0, r1
  and r2, r2, #7
  ldr r8, .L15733+24
  add r2, r2, ip, asl #2
  cmp r6, #0
  add r4, r8, r2, asl #3
  ble .L13691
  ldr r3, [sp, #52]
  mul r2, r9, fp
  mul r3, lr, r3
  ldr ip, [sp, #128]
  rsb r3, r2, r3
  add r0, ip, r3
  mov r2, r0, asr #8
  cmp r2, r7
  ldrcs ip, [sp, #12]
  bcs .L13701
  b .L15725
.L13702:
  cmp r2, r7
  bcc .L15660
.L13701:
  add ip, ip, #1
  add r0, r0, r9
  cmp r6, ip
  mov r2, r0, asr #8
  add r5, r5, #4
  bne .L13702
.L13691:
  ldr r0, [sp, #32]
  ldr r1, [sp, #44]
  add r0, r0, #1
  cmp r0, r1
  str r0, [sp, #32]
  beq .L15634
.L15686:
  ldr lr, [sp, #32]
  b .L13677
.L13680:
  tst lr, #256
  beq .L14852
  tst lr, #8192
  beq .L14854
  mov r3, r4, lsr #4
  ldr r4, .L15733+12
  add r1, sl, sl, lsr #31
  and r3, r3, #992
  add r3, r3, r4
  add r2, r7, r7, lsr #31
  mov r4, r1, asr #1
  ldr r1, [sp, #8]
  tst lr, #512
  ldrh  r8, [r3, #30]
  mov lr, r2, asr #1
  moveq r9, r7
  moveq r6, lr
  moveq r0, r4
  movne r9, r7, asl #1
  movne r6, lr, asl #1
  movne r0, r4, asl #1
  cmp r5, r1
  str r8, [sp, #20]
  ldrh  r2, [r3, #14]
  ldrh  r8, [r3, #6]
  ldrh  fp, [r3, #22]
  bge .L14859
  rsb r1, r5, r1
  rsb r9, r1, r9
  cmp r9, #0
  ble .L13691
  ldr r5, [sp, #8]
  rsb r6, r1, r6
.L14859:
  ldr r1, [sp, #4]
  add r3, r5, r9
  cmp r3, r1
  blt .L14862
  rsb r9, r5, r1
  cmp r9, #0
  ble .L13691
.L14862:
  mov r2, r2, asl #16
  mov r3, r8, asl #16
  mov r2, r2, asr #16
  ldr r8, [sp, #20]
  mov lr, lr, asl #8
  str r2, [sp, #76]
  str lr, [sp, #80]
  ldr r2, [sp, #40]
  ldr lr, [sp, #0]
  add r0, ip, r0
  mov r1, r8, asl #16
  mov r3, r3, asr #16
  cmp fp, #0
  add r8, lr, r5, asl #2
  str r3, [sp, #72]
  mov r1, r1, asr #16
  mov ip, r4, asl #8
  rsb lr, r0, r2
  bne .L14864
  mla r3, lr, r1, ip
  mov r2, r3, asr #8
  cmp r2, sl
  bcs .L13691
  cmp r7, #0
  ldr r4, [sp, #36]
  add r3, r7, #7
  movge r3, r7
  mov r1, r4, asl #22
  mov r3, r3, asr #3
  mov r0, r2, lsr #3
  mov r3, r3, asl #1
  mov r1, r1, lsr #22
  mla ip, r3, r0, r1
  and r2, r2, #7
  ldr r5, .L15733+24
  add r2, r2, ip, asl #2
  cmp r9, #0
  add r4, r5, r2, asl #3
  ble .L13691
  ldr r3, [sp, #76]
  ldr r2, [sp, #72]
  mul r3, lr, r3
  mul r2, r6, r2
  ldr ip, [sp, #80]
  rsb r3, r2, r3
  add r0, ip, r3
  mov lr, r0, asr #8
  cmp lr, r7
  movcs ip, fp
  bcs .L14870
  b .L15726
.L14871:
  cmp lr, r7
  bcc .L15672
.L14870:
  ldr lr, [sp, #72]
  add ip, ip, #1
  add r0, r0, lr
  cmp r9, ip
  mov lr, r0, asr #8
  add r8, r8, #4
  bne .L14871
  ldr r0, [sp, #32]
  ldr r1, [sp, #44]
  add r0, r0, #1
  cmp r0, r1
  str r0, [sp, #32]
  bne .L15686
.L15634:
  add sp, sp, #148
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L13682:
  ldr r1, [sp, #40]
  tst r4, #8192
  rsb ip, ip, r1
  rsbne r3, ip, sl
  subne ip, r3, #1
  mov r2, r4, asl #19
  and r3, r0, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L13691
  .p2align 2
.L13771:
  .word .L13767
  .word .L13768
  .word .L13769
  .word .L13770
.L14852:
  ldr lr, [sp, #40]
  tst r4, #8192
  rsb ip, ip, lr
  rsbne r3, ip, sl
  subne ip, r3, #1
  mov r2, r4, asl #19
  and r3, r0, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L13691
  .p2align 2
.L14933:
  .word .L14929
  .word .L14930
  .word .L14931
  .word .L14932
.L14854:
  mov r3, r4, lsr #4
  ldr r1, .L15733+12
  and r3, r3, #992
  add r3, r3, r1
  ldrh  r4, [r3, #30]
  add r1, sl, sl, lsr #31
  add r2, r7, r7, lsr #31
  str r4, [sp, #24]
  mov r4, r1, asr #1
  ldr r1, [sp, #8]
  tst lr, #512
  mov lr, r2, asr #1
  moveq fp, r7
  moveq r6, lr
  moveq r0, r4
  movne fp, r7, asl #1
  movne r6, lr, asl #1
  movne r0, r4, asl #1
  cmp r5, r1
  ldrh  r8, [r3, #6]
  ldrh  r2, [r3, #14]
  ldrh  r9, [r3, #22]
  bge .L14891
  rsb r1, r5, r1
  rsb fp, r1, fp
  cmp fp, #0
  ble .L13691
  ldr r5, [sp, #8]
  rsb r6, r1, r6
.L14891:
  ldr r1, [sp, #4]
  add r3, r5, fp
  cmp r3, r1
  blt .L14894
  rsb fp, r5, r1
  cmp fp, #0
  ble .L13691
.L14894:
  mov r3, r8, asl #16
  ldr r8, [sp, #24]
  mov r2, r2, asl #16
  mov r1, r8, asl #16
  ldr r8, [sp, #36]
  mov r2, r2, asr #16
  mov lr, lr, asl #8
  add ip, ip, r0
  str r2, [sp, #92]
  mov r0, r8, lsr #8
  str lr, [sp, #100]
  ldr r2, [sp, #40]
  ldr lr, [sp, #0]
  mov r3, r3, asr #16
  and r0, r0, #240
  cmp r9, #0
  add r8, lr, r5, asl #2
  str r3, [sp, #88]
  mov r1, r1, asr #16
  mov r4, r4, asl #8
  rsb lr, ip, r2
  str r0, [sp, #136]
  bne .L14896
  mla r3, lr, r1, r4
  mov r3, r3, asr #8
  cmp r3, sl
  bcs .L13691
  ldr r4, [sp, #36]
  cmp r7, #0
  add r2, r7, #7
  mov r1, r4, asl #22
  movge r2, r7
  mov r1, r1, lsr #22
  mov r0, r3, lsr #3
  mov r2, r2, asr #3
  mla ip, r2, r0, r1
  and r3, r3, #7
  ldr r5, .L15733+24
  add r3, r3, ip, asl #3
  cmp fp, #0
  add r1, r5, r3, asl #2
  ble .L13691
  ldr r3, [sp, #92]
  ldr r2, [sp, #88]
  mul r3, lr, r3
  mul r2, r6, r2
  ldr ip, [sp, #100]
  rsb r3, r2, r3
  add r0, ip, r3
  mov r3, r0, asr #8
  cmp r3, r7
  mov lr, r3
  movcs r4, r9
  bcs .L14902
  b .L15727
.L14903:
  cmp r3, r7
  bcc .L14904
.L14902:
  ldr lr, [sp, #88]
  add r4, r4, #1
  add r0, r0, lr
  mov r3, r0, asr #8
  cmp fp, r4
  add r8, r8, #4
  mov lr, r3
  bne .L14903
  b .L13691
.L13684:
  mov r3, r4, lsr #4
  ldr r4, .L15733+12
  add r2, r7, r7, lsr #31
  and r3, r3, #992
  tst lr, #512
  add r3, r3, r4
  mov lr, r2, asr #1
  add r1, sl, sl, lsr #31
  ldr r2, [sp, #8]
  mov r4, r1, asr #1
  ldrh  r9, [r3, #30]
  ldrh  r8, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq fp, r7
  moveq r6, lr
  moveq r0, r4
  movne fp, r7, asl #1
  movne r6, lr, asl #1
  movne r0, r4, asl #1
  cmp r5, r2
  str r3, [sp, #16]
  bge .L13726
  rsb r2, r5, r2
  rsb fp, r2, fp
  cmp fp, #0
  ble .L13691
  ldr r5, [sp, #8]
  rsb r6, r2, r6
.L13726:
  ldr r2, [sp, #4]
  add r3, r5, fp
  cmp r3, r2
  blt .L13729
  rsb fp, r5, r2
  cmp fp, #0
  ble .L13691
.L13729:
  mov r3, r8, asl #16
  ldr r8, [sp, #16]
  mov r2, r1, asl #16
  cmp r8, #0
  ldr r8, [sp, #36]
  mov lr, lr, asl #8
  add ip, ip, r0
  str lr, [sp, #132]
  mov r0, r8, lsr #8
  ldr lr, [sp, #0]
  mov r8, r2, asr #16
  ldr r2, [sp, #40]
  mov r1, r9, asl #16
  mov r3, r3, asr #16
  and r0, r0, #240
  add r9, lr, r5, asl #2
  str r3, [sp, #60]
  mov r1, r1, asr #16
  mov r4, r4, asl #8
  rsb lr, ip, r2
  str r0, [sp, #140]
  bne .L13731
  mla r3, lr, r1, r4
  mov r3, r3, asr #8
  cmp r3, sl
  bcs .L13691
  ldr r4, [sp, #36]
  cmp r7, #0
  add r2, r7, #7
  mov r1, r4, asl #22
  movge r2, r7
  mov r0, r3, lsr #3
  mov r1, r1, lsr #22
  mov r2, r2, asr #3
  mla ip, r2, r0, r1
  and r3, r3, #7
  add r3, r3, ip, asl #3
  ldr ip, .L15733+24
  cmp fp, #0
  add r5, ip, r3, asl #2
  ble .L13691
  ldr r2, [sp, #60]
  mul r3, lr, r8
  mul r2, r6, r2
  ldr lr, [sp, #132]
  rsb r3, r2, r3
  add ip, lr, r3
  mov r1, ip, asr #8
  cmp r1, r7
  ldrcs lr, [sp, #16]
  bcs .L13737
  b .L15728
.L13738:
  cmp r1, r7
  bcc .L15662
.L13737:
  ldr r0, [sp, #60]
  add lr, lr, #1
  add ip, ip, r0
  cmp fp, lr
  mov r1, ip, asr #8
  add r9, r9, #4
  bne .L13738
  b .L13691
.L13740:
  cmp r1, r7
  bcs .L13691
.L15662:
  mov r3, r1, asr #1
  and r4, r3, #3
  mov r3, r1, asr #3
  mov r3, r3, asl #5
  mov r2, r1, asr #1
  and r0, r2, #3
  tst r1, #1
  add r2, r3, r5
  add r1, r3, r5
  ldrneb  r3, [r1, r4]  @ zero_extendqisi2
  ldreqb  r3, [r2, r0]  @ zero_extendqisi2
  movne r0, r3, lsr #4
  andeq r0, r3, #15
  ldr r1, [sp, #140]
  cmp r0, #0
  orr r0, r0, r1
  beq .L13745
  ldr r2, [r9, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r9, #0]
  streq r0, [r9, #0]
.L13745:
  ldr r2, [sp, #60]
  add lr, lr, #1
  add ip, ip, r2
  cmp fp, lr
  add r9, r9, #4
  mov r1, ip, asr #8
  bgt .L13740
  b .L13691
.L13731:
  ldr r5, [sp, #36]
  cmp r7, #0
  add r2, r7, #7
  mov r3, r5, asl #22
  movge r2, r7
  ldr ip, .L15733+24
  mov r3, r3, lsr #22
  mov r2, r2, asr #3
  add r3, ip, r3, asl #5
  mov r2, r2, asl #5
  cmp fp, #0
  str r3, [sp, #120]
  str r2, [sp, #68]
  ble .L13691
  ldr r0, [sp, #16]
  mul r2, lr, r1
  mov r3, r0, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #64]
  ldr r1, [sp, #64]
  ldr r0, [sp, #60]
  mul r1, r6, r1
  mul r3, lr, r8
  mul r0, r6, r0
  rsb r2, r1, r2
  ldr r1, [sp, #132]
  rsb r3, r0, r3
  add r5, r4, r2
  add r6, r1, r3
  mov r4, r6, asr #8
  mov r3, r5, asr #8
  cmp r4, r7
  cmpcc r3, sl
  movcs r2, #0
  movcc r2, #1
  movcs r8, r2
  bcs .L13752
  b .L15729
.L13753:
  cmp r4, r7
  cmpcc r3, sl
  bcc .L13754
.L13752:
  ldr r3, [sp, #64]
  ldr r2, [sp, #60]
  add r8, r8, #1
  add r6, r6, r2
  add r5, r5, r3
  cmp fp, r8
  mov r4, r6, asr #8
  mov r3, r5, asr #8
  add r9, r9, #4
  bne .L13753
  b .L13691
.L14896:
  ldr r0, [sp, #36]
  cmp r7, #0
  add r2, r7, #7
  mov r3, r0, asl #22
  movge r2, r7
  ldr r5, .L15733+24
  mov r3, r3, lsr #22
  mov r2, r2, asr #3
  add r3, r5, r3, asl #5
  mov r2, r2, asl #5
  cmp fp, #0
  str r3, [sp, #112]
  str r2, [sp, #104]
  ble .L13691
  mov r3, r9, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #96]
  mul r2, lr, r1
  ldr r3, [sp, #92]
  ldr r1, [sp, #96]
  ldr r0, [sp, #88]
  mul r3, lr, r3
  mul r1, r6, r1
  mul r0, r6, r0
  ldr ip, [sp, #100]
  rsb r2, r1, r2
  rsb r3, r0, r3
  add r5, ip, r3
  add r4, r4, r2
  mov lr, r5, asr #8
  mov r2, r4, asr #8
  cmp lr, r7
  cmpcc r2, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L14916
  b .L15730
.L14917:
  cmp lr, r7
  cmpcc r2, sl
  bcc .L14918
.L14916:
  ldr lr, [sp, #88]
  ldr r0, [sp, #96]
  add r6, r6, #1
  add r5, r5, lr
  add r4, r4, r0
  cmp fp, r6
  mov lr, r5, asr #8
  mov r2, r4, asr #8
  add r8, r8, #4
  bne .L14917
  b .L13691
.L14873:
  cmp lr, r7
  bcs .L13691
.L15672:
  ldr r1, [sp, #72]
  mov r3, lr, asr #3
  add r0, r0, r1
  add r3, r4, r3, asl #6
  and r1, lr, #7
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  ldr r5, [sp, #28]
  cmp r2, #0
  add ip, ip, #1
  orr r3, r5, r2
  strne r3, [r8, #0]
  cmp r9, ip
  mov lr, r0, asr #8
  add r8, r8, #4
  bgt .L14873
  b .L13691
.L13704:
  cmp r2, r7
  bcs .L13691
.L15660:
  mov r3, r2, asr #3
  add r3, r4, r3, asl #6
  and r2, r2, #7
  ldrb  lr, [r3, r2]  @ zero_extendqisi2
  cmp lr, #0
  beq .L13706
  ldr r3, [r5, #0]
  mov r2, r3, lsr #16
  mov r2, r2, asl #16
  orr r1, lr, r3, asl #16
  orr r2, r2, #768
  tst r3, #256
  orr r2, lr, r2
  orr r1, r1, #768
  strne r2, [r5, #0]
  streq r1, [r5, #0]
.L13706:
  add ip, ip, #1
  add r0, r0, r9
  cmp r6, ip
  add r5, r5, #4
  mov r2, r0, asr #8
  bgt .L13704
  b .L13691
.L13695:
  ldr r0, [sp, #36]
  cmp r7, #0
  add r2, r7, #7
  mov r3, r0, asl #22
  movge r2, r7
  ldr r8, .L15733+24
  mov r3, r3, lsr #22
  mov r2, r2, asr #3
  add r3, r8, r3, asl #5
  mov r2, r2, asl #6
  cmp r6, #0
  str r3, [sp, #124]
  str r2, [sp, #56]
  ble .L13691
  ldr ip, [sp, #12]
  mul r2, lr, r1
  mov r3, ip, asl #16
  mov r8, r3, asr #16
  ldr r3, [sp, #52]
  mul r1, r8, fp
  mul r3, lr, r3
  mul r0, r9, fp
  ldr lr, [sp, #128]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add ip, lr, r3
  add lr, r4, r2
  mov r1, ip, asr #8
  mov r0, lr, asr #8
  cmp r1, r7
  cmpcc r0, sl
  movcs r3, #0
  movcc r3, #1
  movcs r4, r3
  bcs .L13713
  b .L15731
.L13714:
  cmp r1, r7
  cmpcc r0, sl
  bcc .L13715
.L13713:
  add r4, r4, #1
  add ip, ip, r9
  add lr, lr, r8
  cmp r6, r4
  mov r1, ip, asr #8
  mov r0, lr, asr #8
  add r5, r5, #4
  bne .L13714
  b .L13691
.L14864:
  ldr r0, [sp, #36]
  cmp r7, #0
  add r2, r7, #7
  mov r3, r0, asl #22
  movge r2, r7
  ldr r4, .L15733+24
  mov r3, r3, lsr #22
  mov r2, r2, asr #3
  add r3, r4, r3, asl #5
  mov r2, r2, asl #6
  cmp r9, #0
  str r3, [sp, #116]
  str r2, [sp, #84]
  ble .L13691
  mov r3, fp, asl #16
  mov fp, r3, asr #16
  ldr r0, [sp, #72]
  ldr r3, [sp, #76]
  mul r2, lr, r1
  mul r3, lr, r3
  mul r1, fp, r6
  mul r0, r6, r0
  ldr lr, [sp, #80]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r5, lr, r3
  add ip, ip, r2
  mov r4, r5, asr #8
  mov lr, ip, asr #8
  cmp r4, r7
  cmpcc lr, sl
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L14880
  b .L15732
.L14881:
  cmp r4, r7
  cmpcc lr, sl
  bcc .L14882
.L14880:
  ldr r0, [sp, #72]
  add r6, r6, #1
  add r5, r5, r0
  add ip, ip, fp
  cmp r9, r6
  mov r4, r5, asr #8
  mov lr, ip, asr #8
  add r8, r8, #4
  bne .L14881
  b .L13691
.L14929:
  ldr r0, [sp, #36]
  cmp r7, #0
  add r3, r7, #7
  mov r2, r0, asl #22
  movge r3, r7
  mov r4, r3, asr #3
  mov r2, r2, lsr #22
  mov r3, ip, lsr #3
  mla r0, r4, r3, r2
  ldr r8, [sp, #36]
  ldr r2, [sp, #8]
  and r1, ip, #7
  ldr ip, .L15733+24
  add r1, r1, r0, asl #3
  mov r3, r8, lsr #8
  cmp r5, r2
  and r6, r3, #240
  add r0, ip, r1, asl #2
  bge .L14934
  rsb lr, r5, r2
  rsb r4, lr, r7
  cmp r4, #0
  ble .L13691
  ldr r1, [sp, #4]
  add r3, r5, r7
  cmp r1, r3
  bhi .L14937
  mov r3, lr, lsr #3
  mov r1, r3, asl #5
  ands  r3, lr, #7
  add r4, r0, r1
  bne .L14939
  ldr r5, [sp, #144]
  ldr r7, [sp, #108]
.L14941:
  movs  lr, r5, lsr #3
  beq .L14958
  mov r1, r7
  mov r0, r4
  mov ip, #0
.L14960:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L14961
  ands  r3, r2, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #28
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r1, #28]
.L14961:
  add ip, ip, #1
  cmp lr, ip
  add r0, r0, #32
  add r1, r1, #32
  bne .L14960
  mov r3, lr, asl #5
  add r4, r4, r3
  add r7, r7, r3
.L14958:
  ands  r0, r5, #7
  beq .L13691
  ldr r2, [r4, #0]
  mov r1, #0
.L14980:
  ldr r4, [sp, #28]
  ands  r3, r2, #15
  orr r3, r4, r3
  orr r3, r6, r3
  strne r3, [r7, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, lsr #4
  bne .L14980
  b .L13691
.L14930:
  ldr lr, [sp, #36]
  cmp r7, #0
  add r3, r7, #7
  mov r2, lr, asl #22
  movge r3, r7
  mov r4, r3, asr #3
  mov r2, r2, lsr #22
  mov r1, ip, lsr #3
  mla r0, r4, r1, r2
  subs  r3, r7, #8
  submi r3, r7, #1
  add r0, r0, r3, asr #3
  and r2, ip, #7
  add r2, r2, r0, asl #3
  ldr r0, [sp, #8]
  ldr r1, .L15733+24
  cmp r5, r0
  mov r3, lr, lsr #8
  and r6, r3, #240
  add r0, r1, r2, asl #2
  bge .L15064
  ldr r2, [sp, #8]
  rsb lr, r5, r2
  rsb r1, lr, r7
  cmp r1, #0
  ble .L13691
  ldr r4, [sp, #4]
  add r3, r5, r7
  cmp r4, r3
  bhi .L15067
  mov r3, lr, lsr #3
  ands  r4, lr, #7
  sub r0, r0, r3, asl #5
  bne .L15069
  ldr r2, [sp, #144]
  ldr r1, [sp, #108]
.L15071:
  movs  r8, r2, lsr #3
  beq .L15088
  mov r4, r1
  mov r5, r0
  mov r7, #0
.L15090:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L15091
  ands  r3, lr, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  movs  r3, lr, lsr #28
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
.L15091:
  add r7, r7, #1
  cmp r7, r8
  sub r5, r5, #32
  add r4, r4, #32
  bne .L15090
  rsb r3, r8, r8, asl #27
  add r0, r0, r3, asl #5
  add r1, r1, r8, asl #5
.L15088:
  ands  lr, r2, #7
  beq .L13691
  ldr r0, [r0, #0]
  mov r2, #0
.L15110:
  ldr r4, [sp, #28]
  movs  r3, r0, lsr #28
  orr r3, r4, r3
  orr r3, r6, r3
  strne r3, [r1, r2, asl #2]
  add r2, r2, #1
  cmp r2, lr
  mov r0, r0, asl #4
  bne .L15110
  b .L13691
.L15734:
  .align  2
.L15733:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word oam_ram
  .word obj_height_table
  .word obj_width_table
  .word vram+65536
.L14931:
  ldr lr, [sp, #36]
  cmp r7, #0
  add r3, r7, #7
  mov r2, ip, lsr #3
  movge r3, r7
  mov r1, lr, asl #22
  mov r4, r3, asr #3
  mov r2, r2, asl #1
  mov r1, r1, lsr #22
  mla r0, r2, r4, r1
  and r3, ip, #7
  ldr r1, [sp, #8]
  add r3, r3, r0, asl #2
  ldr r2, .L15733+24
  mov r0, r3, asl #3
  cmp r5, r1
  add ip, r0, r2
  bge .L15194
  rsb r0, r5, r1
  rsb lr, r0, r7
  cmp lr, #0
  ble .L13691
  ldr r4, [sp, #4]
  add r3, r5, r7
  cmp r4, r3
  bhi .L15197
  mov r3, r0, lsr #3
  ands  lr, r0, #7
  add r6, ip, r3, asl #6
  bne .L15199
  ldr r5, [sp, #144]
  ldr r4, [sp, #108]
.L15201:
  movs  lr, r5, lsr #3
  beq .L15259
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L15261:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L15262
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #12]
.L15262:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L15271
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #28]
.L15271:
  add ip, ip, #1
  cmp ip, lr
  add r0, r0, #64
  add r1, r1, #32
  bne .L15261
  add r6, r6, lr, asl #6
  add r4, r4, lr, asl #5
.L15259:
  ands  r0, r5, #7
  beq .L13691
  cmp r0, #3
  ldrls r1, [r6, #0]
  bls .L15294
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L15284
  ands  r3, r2, #255
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  strne r3, [r4, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r4, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #28]
  orrne r3, r1, r3
  strne r3, [r4, #8]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r4, #12]
.L15284:
  subs  r0, r0, #4
  ldr r1, [r6, #4]
  addne r4, r4, #16
  beq .L13691
.L15294:
  mov r2, #0
.L15295:
  ldr r5, [sp, #28]
  ands  r3, r1, #255
  orr r3, r5, r3
  strne r3, [r4, r2, asl #2]
  add r2, r2, #1
  cmp r0, r2
  mov r1, r1, lsr #8
  bhi .L15295
  b .L13691
.L13769:
  ldr r4, [sp, #36]
  cmp r7, #0
  add r3, r7, #7
  mov r1, r4, asl #22
  movge r3, r7
  mov r2, ip, lsr #3
  mov r4, r3, asr #3
  mov r2, r2, asl #1
  mov r1, r1, lsr #22
  mla r0, r2, r4, r1
  and r3, ip, #7
  ldr r8, [sp, #8]
  add r3, r3, r0, asl #2
  ldr lr, .L15733+24
  mov r0, r3, asl #3
  cmp r5, r8
  add ip, r0, lr
  bge .L14180
  rsb r0, r5, r8
  rsb r8, r0, r7
  cmp r8, #0
  ble .L13691
  ldr r1, [sp, #4]
  add r3, r5, r7
  cmp r1, r3
  bhi .L14183
  mov r3, r0, lsr #3
  ands  lr, r0, #7
  add r7, ip, r3, asl #6
  bne .L14185
  ldr r6, [sp, #144]
  ldr r4, [sp, #108]
.L14187:
  movs  r5, r6, lsr #3
  beq .L14265
  mov r0, r4
  mov ip, r7
  mov lr, #0
.L14267:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L14268
  ands  r1, r2, #255
  beq .L14270
  ldr r3, [r0, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L14270:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L14274
  ldr r3, [r0, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L14274:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L14278
  ldr r3, [r0, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L14278:
  movs  r2, r2, lsr #24
  beq .L14268
  ldr r1, [r0, #12]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L14268:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L14285
  ands  r1, r2, #255
  beq .L14287
  ldr r3, [r0, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L14287:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L14291
  ldr r3, [r0, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L14291:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L14295
  ldr r3, [r0, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L14295:
  movs  r2, r2, lsr #24
  beq .L14285
  ldr r3, [r0, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L14285:
  add lr, lr, #1
  cmp r5, lr
  add ip, ip, #64
  add r0, r0, #32
  bne .L14267
  add r7, r7, r5, asl #6
  add r4, r4, r5, asl #5
.L14265:
  ands  r5, r6, #7
  beq .L13691
  cmp r5, #3
  ldrls ip, [r7, #0]
  bls .L14324
  ldr r2, [r7, #0]
  cmp r2, #0
  beq .L14306
  ands  r1, r2, #255
  beq .L14308
  ldr r3, [r4, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L14308:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L14312
  ldr r3, [r4, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L14312:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L14316
  ldr r3, [r4, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L14316:
  movs  r2, r2, lsr #24
  beq .L14306
  ldr r1, [r4, #12]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L14306:
  subs  r5, r5, #4
  ldr ip, [r7, #4]
  addne r4, r4, #16
  beq .L13691
.L14324:
  mov lr, #0
.L14325:
  ands  r0, ip, #255
  beq .L14326
  ldr r2, [r4, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r4, #0]
  streq r0, [r4, #0]
.L14326:
  add lr, lr, #1
  cmp lr, r5
  mov ip, ip, lsr #8
  add r4, r4, #4
  bcc .L14325
  b .L13691
.L13767:
  ldr r4, [sp, #36]
  cmp r7, #0
  add r3, r7, #7
  mov r2, r4, asl #22
  movge r3, r7
  mov r8, r3, asr #3
  mov r2, r2, lsr #22
  mov r3, ip, lsr #3
  mla r0, r8, r3, r2
  and r1, ip, #7
  ldr ip, [sp, #8]
  ldr lr, .L15733+24
  add r1, r1, r0, asl #3
  mov r3, r4, lsr #8
  cmp r5, ip
  and r6, r3, #240
  add r0, lr, r1, asl #2
  bge .L13772
  rsb lr, r5, ip
  rsb r8, lr, r7
  cmp r8, #0
  ble .L13691
  ldr r1, [sp, #4]
  add r3, r5, r7
  cmp r1, r3
  bhi .L13775
  mov r3, lr, lsr #3
  mov r1, r3, asl #5
  ands  r3, lr, #7
  add r8, r0, r1
  bne .L13777
  ldr sl, [sp, #144]
  ldr r4, [sp, #108]
.L13779:
  movs  r7, sl, lsr #3
  beq .L13800
  mov ip, r4
  mov lr, r8
  mov r5, #0
.L13802:
  ldr r0, [lr, #0]
  cmp r0, #0
  beq .L13803
  ands  r2, r0, #15
  beq .L13805
  ldr r1, [ip, #0]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #0]
  streq r3, [ip, #0]
.L13805:
  mov r3, r0, lsr #4
  ands  r2, r3, #15
  beq .L13809
  ldr r1, [ip, #4]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #4]
  streq r3, [ip, #4]
.L13809:
  mov r3, r0, lsr #8
  ands  r2, r3, #15
  beq .L13813
  ldr r1, [ip, #8]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #8]
  streq r3, [ip, #8]
.L13813:
  mov r3, r0, lsr #12
  ands  r2, r3, #15
  beq .L13817
  ldr r1, [ip, #12]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #12]
  streq r3, [ip, #12]
.L13817:
  mov r3, r0, lsr #16
  ands  r2, r3, #15
  beq .L13821
  ldr r1, [ip, #16]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #16]
  streq r3, [ip, #16]
.L13821:
  mov r3, r0, lsr #20
  ands  r2, r3, #15
  beq .L13825
  ldr r1, [ip, #20]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #20]
  streq r3, [ip, #20]
.L13825:
  mov r3, r0, lsr #24
  ands  r2, r3, #15
  beq .L13829
  ldr r1, [ip, #24]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #24]
  streq r3, [ip, #24]
.L13829:
  movs  r2, r0, lsr #28
  beq .L13803
  ldr r1, [ip, #28]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #28]
  streq r3, [ip, #28]
.L13803:
  add r5, r5, #1
  cmp r7, r5
  add lr, lr, #32
  add ip, ip, #32
  bne .L13802
  mov r3, r7, asl #5
  add r8, r8, r3
  add r4, r4, r3
.L13800:
  ands  r5, sl, #7
  beq .L13691
  ldr ip, [r8, #0]
  mov lr, #0
.L13838:
  ands  r3, ip, #15
  beq .L13839
  ldr r1, [r4, #0]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L13839:
  add lr, lr, #1
  cmp r5, lr
  mov ip, ip, lsr #4
  add r4, r4, #4
  bne .L13838
  b .L13691
.L13770:
  cmp r7, #0
  add r2, r7, #7
  movge r2, r7
  subs  r3, r7, #8
  submi r3, r7, #1
  mov r6, r2, asr #3
  mov r3, r3, asr #3
  mov r1, ip, lsr #3
  mla r0, r6, r1, r3
  ldr r3, [sp, #36]
  ldr r4, [sp, #8]
  mov r2, r3, asl #22
  mov r2, r2, lsr #22
  add r2, r2, r0, asl #1
  and r3, ip, #7
  add r3, r3, r2, asl #2
  ldr r8, .L15733+24
  mov r0, r3, asl #3
  cmp r5, r4
  add ip, r0, r8
  bge .L14516
  rsb r0, r5, r4
  rsb r8, r0, r7
  cmp r8, #0
  ble .L13691
  ldr lr, [sp, #4]
  add r3, r5, r7
  cmp lr, r3
  bhi .L14519
  mov r3, r0, lsr #3
  ands  lr, r0, #7
  sub r8, ip, r3, asl #6
  bne .L14521
  ldr r7, [sp, #144]
  ldr r4, [sp, #108]
.L14523:
  movs  r6, r7, lsr #3
  beq .L14601
  mov ip, r4
  mov lr, r8
  mov r5, #0
.L14603:
  ldr r2, [lr, #4]
  cmp r2, #0
  beq .L14604
  ands  r1, r2, #255
  beq .L14606
  ldr r3, [ip, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #12]
  streq r3, [ip, #12]
.L14606:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L14610
  ldr r3, [ip, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #8]
  streq r3, [ip, #8]
.L14610:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L14614
  ldr r3, [ip, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #4]
  streq r3, [ip, #4]
.L14614:
  movs  r2, r2, lsr #24
  beq .L14604
  ldr r3, [ip, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #0]
  streq r3, [ip, #0]
.L14604:
  ldr r1, [lr, #0]
  cmp r1, #0
  beq .L14621
  ands  r2, r1, #255
  beq .L14623
  ldr r0, [ip, #28]
  tst r0, #256
  movne r3, r0, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r0, asl #16
  strne r3, [ip, #28]
  streq r3, [ip, #28]
.L14623:
  mov r3, r1, lsr #8
  ands  r2, r3, #255
  beq .L14627
  ldr r3, [ip, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #24]
  streq r3, [ip, #24]
.L14627:
  mov r3, r1, lsr #16
  ands  r2, r3, #255
  beq .L14631
  ldr r3, [ip, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #20]
  streq r3, [ip, #20]
.L14631:
  movs  r2, r1, lsr #24
  beq .L14621
  ldr r1, [ip, #16]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #16]
  streq r3, [ip, #16]
.L14621:
  add r5, r5, #1
  cmp r5, r6
  sub lr, lr, #64
  add ip, ip, #32
  bne .L14603
  rsb r3, r6, r6, asl #26
  add r8, r8, r3, asl #6
  add r4, r4, r6, asl #5
.L14601:
  ands  r5, r7, #7
  beq .L13691
  cmp r5, #3
  ldrls ip, [r8, #4]
  bls .L14660
  ldr r2, [r8, #4]
  cmp r2, #0
  beq .L14642
  ands  r1, r2, #255
  beq .L14644
  ldr r3, [r4, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L14644:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L14648
  ldr r3, [r4, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L14648:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L14652
  ldr r3, [r4, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L14652:
  movs  r2, r2, lsr #24
  beq .L14642
  ldr r3, [r4, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L14642:
  subs  r5, r5, #4
  ldr ip, [r8, #0]
  addne r4, r4, #16
  beq .L13691
.L14660:
  mov lr, #0
.L14661:
  movs  r0, ip, lsr #24
  beq .L14662
  ldr r2, [r4, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r4, #0]
  streq r0, [r4, #0]
.L14662:
  add lr, lr, #1
  cmp lr, r5
  mov ip, ip, asl #8
  add r4, r4, #4
  bcc .L14661
  b .L13691
.L14932:
  cmp r7, #0
  add r2, r7, #7
  movge r2, r7
  subs  r3, r7, #8
  submi r3, r7, #1
  mov r4, r2, asr #3
  mov r3, r3, asr #3
  mov r1, ip, lsr #3
  mla r0, r4, r1, r3
  ldr r1, [sp, #36]
  and r3, ip, #7
  mov r2, r1, asl #22
  mov r2, r2, lsr #22
  add r2, r2, r0, asl #1
  add r3, r3, r2, asl #2
  ldr r2, [sp, #8]
  mov r0, r3, asl #3
  ldr r3, .L15733+24
  cmp r5, r2
  add r2, r0, r3
  bge .L15414
  ldr r4, [sp, #8]
  rsb r0, r5, r4
  rsb lr, r0, r7
  cmp lr, #0
  ble .L13691
  add r3, r5, r7
  ldr r5, [sp, #4]
  cmp r5, r3
  bhi .L15417
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub r6, r2, r3, asl #6
  bne .L15419
  ldr r5, [sp, #144]
  ldr r4, [sp, #108]
.L15421:
  movs  lr, r5, lsr #3
  beq .L15479
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L15481:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L15482
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #4]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #0]
.L15482:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L15491
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #28]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #24]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #20]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #16]
.L15491:
  add ip, ip, #1
  cmp ip, lr
  sub r0, r0, #64
  add r1, r1, #32
  bne .L15481
  rsb r3, lr, lr, asl #26
  add r6, r6, r3, asl #6
  add r4, r4, lr, asl #5
.L15479:
  ands  r0, r5, #7
  beq .L13691
  cmp r0, #3
  ldrls r2, [r6, #4]
  bls .L15514
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L15504
  ands  r3, r2, #255
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #28]
  orrne r3, r1, r3
  strne r3, [r4, #4]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r4, #0]
.L15504:
  subs  r0, r0, #4
  ldr r2, [r6, #0]
  addne r4, r4, #16
  beq .L13691
.L15514:
  mov r1, #0
.L15515:
  ldr r5, [sp, #28]
  movs  r3, r2, lsr #24
  orr r3, r5, r3
  strne r3, [r4, r1, asl #2]
  add r1, r1, #1
  cmp r0, r1
  mov r2, r2, asl #8
  bhi .L15515
  b .L13691
.L13768:
  ldr r4, [sp, #36]
  cmp r7, #0
  add r3, r7, #7
  mov r2, r4, asl #22
  movge r3, r7
  mov r8, r3, asr #3
  mov r2, r2, lsr #22
  mov r1, ip, lsr #3
  mla r0, r8, r1, r2
  subs  r3, r7, #8
  submi r3, r7, #1
  and r2, ip, #7
  ldr ip, [sp, #8]
  add r0, r0, r3, asr #3
  ldr lr, .L15733+24
  add r2, r2, r0, asl #3
  mov r3, r4, lsr #8
  cmp r5, ip
  and r6, r3, #240
  add r0, lr, r2, asl #2
  bge .L13976
  rsb lr, r5, ip
  rsb r8, lr, r7
  cmp r8, #0
  ble .L13691
  ldr r1, [sp, #4]
  add r3, r5, r7
  cmp r1, r3
  bhi .L13979
  mov r3, lr, lsr #3
  ands  r4, lr, #7
  sub ip, r0, r3, asl #5
  bne .L13981
  ldr sl, [sp, #144]
  ldr r5, [sp, #108]
.L13983:
  movs  r8, sl, lsr #3
  beq .L14004
  mov lr, r5
  mov r4, ip
  mov r7, #0
.L14006:
  ldr r0, [r4, #0]
  cmp r0, #0
  beq .L14007
  ands  r2, r0, #15
  beq .L14009
  ldr r1, [lr, #28]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #28]
  streq r3, [lr, #28]
.L14009:
  mov r3, r0, lsr #4
  ands  r2, r3, #15
  beq .L14013
  ldr r1, [lr, #24]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #24]
  streq r3, [lr, #24]
.L14013:
  mov r3, r0, lsr #8
  ands  r2, r3, #15
  beq .L14017
  ldr r1, [lr, #20]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #20]
  streq r3, [lr, #20]
.L14017:
  mov r3, r0, lsr #12
  ands  r2, r3, #15
  beq .L14021
  ldr r1, [lr, #16]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #16]
  streq r3, [lr, #16]
.L14021:
  mov r3, r0, lsr #16
  ands  r2, r3, #15
  beq .L14025
  ldr r1, [lr, #12]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #12]
  streq r3, [lr, #12]
.L14025:
  mov r3, r0, lsr #20
  ands  r2, r3, #15
  beq .L14029
  ldr r1, [lr, #8]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #8]
  streq r3, [lr, #8]
.L14029:
  mov r3, r0, lsr #24
  ands  r2, r3, #15
  beq .L14033
  ldr r1, [lr, #4]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #4]
  streq r3, [lr, #4]
.L14033:
  movs  r2, r0, lsr #28
  beq .L14007
  ldr r1, [lr, #0]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #0]
  streq r3, [lr, #0]
.L14007:
  add r7, r7, #1
  cmp r8, r7
  sub r4, r4, #32
  add lr, lr, #32
  bne .L14006
  rsb r3, r8, r8, asl #27
  add ip, ip, r3, asl #5
  add r5, r5, r8, asl #5
.L14004:
  ands  r4, sl, #7
  beq .L13691
  ldr ip, [ip, #0]
  mov lr, #0
.L14042:
  movs  r3, ip, lsr #28
  beq .L14043
  ldr r1, [r5, #0]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r5, #0]
  streq r2, [r5, #0]
.L14043:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, asl #4
  add r5, r5, #4
  bne .L14042
  b .L13691
.L13976:
  ldr r1, [sp, #4]
  add r3, r5, r7
  cmp r1, r3
  bls .L15693
  cmp r8, #0
  beq .L13691
  ldr r3, [sp, #0]
  mov ip, #0
  add r1, r3, r5, asl #2
  b .L14145
.L15694:
  sub r0, r0, #32
  add r1, r1, #32
.L14145:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L14146
  ands  r2, r4, #15
  beq .L14148
  ldr lr, [r1, #28]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L14148:
  mov r3, r4, lsr #4
  ands  r2, r3, #15
  beq .L14152
  ldr lr, [r1, #24]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L14152:
  mov r3, r4, lsr #8
  ands  r2, r3, #15
  beq .L14156
  ldr lr, [r1, #20]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L14156:
  mov r3, r4, lsr #12
  ands  r2, r3, #15
  beq .L14160
  ldr lr, [r1, #16]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L14160:
  mov r3, r4, lsr #16
  ands  r2, r3, #15
  beq .L14164
  ldr lr, [r1, #12]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L14164:
  mov r3, r4, lsr #20
  ands  r2, r3, #15
  beq .L14168
  ldr lr, [r1, #8]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L14168:
  mov r3, r4, lsr #24
  ands  r2, r3, #15
  beq .L14172
  ldr lr, [r1, #4]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L14172:
  movs  r2, r4, lsr #28
  beq .L14146
  ldr lr, [r1, #0]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L14146:
  add ip, ip, #1
  cmp r8, ip
  bne .L15694
  b .L13691
.L14934:
  ldr ip, [sp, #4]
  add r3, r5, r7
  cmp ip, r3
  bls .L15695
  cmp r4, #0
  beq .L13691
  ldr r3, [sp, #0]
  mov r2, #0
  add r1, r3, r5, asl #2
  b .L15045
.L15696:
  add r0, r0, #32
  add r1, r1, #32
.L15045:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L15046
  ands  r3, lr, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r6, r3
  strne r3, [r1, #0]
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r6, r3
  strne r3, [r1, #4]
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #8]
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r1, #12]
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r6, r3
  strne r3, [r1, #16]
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r6, r3
  strne r3, [r1, #20]
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #24]
  movs  r3, lr, lsr #28
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r1, #28]
.L15046:
  add r2, r2, #1
  cmp r4, r2
  bne .L15696
  b .L13691
.L15194:
  ldr r8, [sp, #4]
  add r3, r5, r7
  cmp r8, r3
  bls .L15697
  cmp r4, #0
  beq .L13691
  ldr lr, [sp, #0]
  ldr r3, .L15735+4
  add r1, lr, r5, asl #2
  add r0, r0, r3
  mov r2, #0
  b .L15394
.L15698:
  add ip, ip, #64
  add r1, r1, #32
.L15394:
  ldr lr, [ip, #0]
  cmp lr, #0
  beq .L15395
  ands  r3, lr, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #0]
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #4]
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #8]
  movs  r3, lr, lsr #24
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r1, #12]
.L15395:
  ldr lr, [r0, #-60]
  cmp lr, #0
  beq .L15404
  ands  r3, lr, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #16]
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #20]
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #24]
  movs  r3, lr, lsr #24
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r1, #28]
.L15404:
  add r2, r2, #1
  cmp r4, r2
  add r0, r0, #64
  bne .L15698
  b .L13691
.L13772:
  ldr r1, [sp, #4]
  add r3, r5, r7
  cmp r1, r3
  bls .L15699
  cmp r8, #0
  beq .L13691
  ldr r3, [sp, #0]
  mov ip, #0
  add r1, r3, r5, asl #2
  b .L13941
.L15700:
  add r0, r0, #32
  add r1, r1, #32
.L13941:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L13942
  ands  r2, r4, #15
  beq .L13944
  ldr lr, [r1, #0]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L13944:
  mov r3, r4, lsr #4
  ands  r2, r3, #15
  beq .L13948
  ldr lr, [r1, #4]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L13948:
  mov r3, r4, lsr #8
  ands  r2, r3, #15
  beq .L13952
  ldr lr, [r1, #8]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L13952:
  mov r3, r4, lsr #12
  ands  r2, r3, #15
  beq .L13956
  ldr lr, [r1, #12]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L13956:
  mov r3, r4, lsr #16
  ands  r2, r3, #15
  beq .L13960
  ldr lr, [r1, #16]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L13960:
  mov r3, r4, lsr #20
  ands  r2, r3, #15
  beq .L13964
  ldr lr, [r1, #20]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L13964:
  mov r3, r4, lsr #24
  ands  r2, r3, #15
  beq .L13968
  ldr lr, [r1, #24]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L13968:
  movs  r2, r4, lsr #28
  beq .L13942
  ldr lr, [r1, #28]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L13942:
  add ip, ip, #1
  cmp r8, ip
  bne .L15700
  b .L13691
.L15064:
  ldr ip, [sp, #4]
  add r3, r5, r7
  cmp ip, r3
  bls .L15701
  cmp r4, #0
  beq .L13691
  ldr r3, [sp, #0]
  mov r2, #0
  add r1, r3, r5, asl #2
  b .L15175
.L15702:
  sub r0, r0, #32
  add r1, r1, #32
.L15175:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L15176
  ands  r3, lr, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r6, r3
  strne r3, [r1, #28]
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r6, r3
  strne r3, [r1, #24]
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #20]
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r1, #16]
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r6, r3
  strne r3, [r1, #12]
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r6, r3
  strne r3, [r1, #8]
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #4]
  movs  r3, lr, lsr #28
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r1, #0]
.L15176:
  add r2, r2, #1
  cmp r4, r2
  bne .L15702
  b .L13691
.L14516:
  ldr r4, [sp, #4]
  add r3, r5, r7
  cmp r4, r3
  bls .L15703
  cmp r6, #0
  beq .L13691
  ldr r2, [sp, #0]
  ldr r3, .L15735
  add r1, r2, r5, asl #2
  add r0, r0, r3
  mov r5, #0
  b .L14816
.L15704:
  sub ip, ip, #64
  add r1, r1, #32
.L14816:
  ldr r2, [r0, #68]
  cmp r2, #0
  beq .L14817
  ands  lr, r2, #255
  beq .L14819
  ldr r3, [r1, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L14819:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L14823
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L14823:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L14827
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L14827:
  movs  r2, r2, lsr #24
  beq .L14817
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L14817:
  ldr lr, [ip, #0]
  cmp lr, #0
  beq .L14834
  ands  r2, lr, #255
  beq .L14836
  ldr r4, [r1, #28]
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L14836:
  mov r3, lr, lsr #8
  ands  r2, r3, #255
  beq .L14840
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L14840:
  mov r3, lr, lsr #16
  ands  r2, r3, #255
  beq .L14844
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L14844:
  movs  r2, lr, lsr #24
  beq .L14834
  ldr lr, [r1, #16]
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L14834:
  add r5, r5, #1
  cmp r6, r5
  sub r0, r0, #64
  bne .L15704
  b .L13691
.L14180:
  ldr r8, [sp, #4]
  add r3, r5, r7
  cmp r8, r3
  bls .L15705
  cmp r4, #0
  beq .L13691
  ldr r2, [sp, #0]
  ldr r3, .L15735+4
  add r1, r2, r5, asl #2
  add r0, r0, r3
  mov r5, #0
  b .L14480
.L15706:
  add ip, ip, #64
  add r1, r1, #32
.L14480:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L14481
  ands  lr, r2, #255
  beq .L14483
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L14483:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L14487
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L14487:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L14491
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L14491:
  movs  r2, r2, lsr #24
  beq .L14481
  ldr lr, [r1, #12]
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L14481:
  ldr r2, [r0, #-60]
  cmp r2, #0
  beq .L14498
  ands  lr, r2, #255
  beq .L14500
  ldr r3, [r1, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L14500:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L14504
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L14504:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L14508
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L14508:
  movs  r2, r2, lsr #24
  beq .L14498
  ldr r3, [r1, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L14498:
  add r5, r5, #1
  cmp r4, r5
  add r0, r0, #64
  bne .L15706
  b .L13691
.L15414:
  ldr r8, [sp, #4]
  add r3, r5, r7
  cmp r3, r8
  bcs .L15707
  cmp r4, #0
  beq .L13691
  ldr r3, [sp, #0]
  mov ip, #0
  add r1, r3, r5, asl #2
  ldr r3, .L15735
  add r0, r0, r3
  b .L15614
.L15708:
  sub r2, r2, #64
  add r1, r1, #32
.L15614:
  ldr lr, [r0, #68]
  cmp lr, #0
  beq .L15615
  ands  r3, lr, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #12]
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #8]
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #4]
  movs  r3, lr, lsr #24
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r1, #0]
.L15615:
  ldr lr, [r2, #0]
  cmp lr, #0
  beq .L15624
  ands  r3, lr, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #28]
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #24]
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #20]
  movs  r3, lr, lsr #24
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r1, #16]
.L15624:
  add ip, ip, #1
  cmp r4, ip
  sub r0, r0, #64
  bne .L15708
  b .L13691
.L15729:
  mov r8, #0
.L13754:
  cmp sl, r3
  cmphi r7, r4
  bhi .L15663
  b .L13691
.L13755:
  cmp r3, sl
  cmpcc r4, r7
  bcs .L13691
.L15663:
  ldr r2, [sp, #68]
  and r0, r3, #7
  and ip, r3, #7
  mov r3, r3, asr #3
  mul r2, r3, r2
  ldr r3, [sp, #120]
  ldr r1, [sp, #120]
  add ip, r3, ip, asl #2
  mov r3, r4, asr #3
  add r0, r1, r0, asl #2
  mov lr, r4, asr #1
  mov r1, r4, asr #1
  add r2, r2, r3, asl #5
  tst r4, #1
  add r3, r0, r2
  and lr, lr, #3
  add r0, ip, r2
  and r1, r1, #3
  ldreqb  r3, [r0, r1]  @ zero_extendqisi2
  ldrneb  r3, [r3, lr]  @ zero_extendqisi2
  andeq r0, r3, #15
  movne r0, r3, lsr #4
  ldr r4, [sp, #140]
  cmp r0, #0
  orr r0, r0, r4
  beq .L13761
  ldr r2, [r9, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r9, #0]
  streq r0, [r9, #0]
.L13761:
  ldr ip, [sp, #60]
  ldr lr, [sp, #64]
  add r8, r8, #1
  add r6, r6, ip
  add r5, r5, lr
  cmp fp, r8
  add r9, r9, #4
  mov r4, r6, asr #8
  mov r3, r5, asr #8
  bgt .L13755
  b .L13691
.L15732:
  mov r6, #0
.L14882:
  cmp sl, lr
  cmphi r7, r4
  bhi .L15673
  b .L13691
.L14883:
  cmp lr, sl
  cmpcc r4, r7
  bcs .L13691
.L15673:
  and r3, lr, #7
  mov r2, r4, asr #3
  mov r3, r3, asl #3
  add r3, r3, r2, asl #6
  ldr r2, [sp, #116]
  ldr r0, [sp, #84]
  add r3, r3, r2
  mov r2, lr, asr #3
  mla r0, r2, r0, r3
  ldr r1, [sp, #72]
  add r6, r6, #1
  add r5, r5, r1
  and r1, r4, #7
  ldrb  r3, [r0, r1]  @ zero_extendqisi2
  ldr r0, [sp, #28]
  cmp r3, #0
  orr r3, r0, r3
  strne r3, [r8, #0]
  add ip, ip, fp
  cmp r9, r6
  mov lr, ip, asr #8
  mov r4, r5, asr #8
  add r8, r8, #4
  bgt .L14883
  b .L13691
.L15730:
  mov r6, #0
.L14918:
  cmp sl, r2
  cmphi r7, lr
  bhi .L15675
  b .L13691
.L14919:
  cmp r2, sl
  cmpcc lr, r7
  bcs .L13691
.L15675:
  ldr r1, [sp, #112]
  and r0, r2, #7
  add r0, r1, r0, asl #2
  mov r3, r2, asr #3
  and r1, r2, #7
  ldr r2, [sp, #104]
  mov ip, lr, asr #1
  mul r2, r3, r2
  and r9, ip, #3
  ldr ip, [sp, #112]
  mov r3, lr, asr #1
  add r1, ip, r1, asl #2
  and ip, r3, #3
  mov r3, lr, asr #3
  add r2, r2, r3, asl #5
  add r3, r0, r2
  tst lr, #1
  add r0, r1, r2
  ldreqb  r3, [r0, ip]  @ zero_extendqisi2
  ldrneb  r3, [r3, r9]  @ zero_extendqisi2
  ldr r2, [sp, #28]
  movne r0, r3, lsr #4
  andeq r0, r3, #15
  ldr ip, [sp, #136]
  ldr lr, [sp, #88]
  orr r3, r0, r2
  ldr r1, [sp, #96]
  cmp r0, #0
  add r6, r6, #1
  orr r3, ip, r3
  strne r3, [r8, #0]
  add r5, r5, lr
  add r4, r4, r1
  cmp fp, r6
  mov lr, r5, asr #8
  mov r2, r4, asr #8
  add r8, r8, #4
  bgt .L14919
  b .L13691
.L15731:
  mov r4, #0
.L13715:
  cmp sl, r0
  cmphi r7, r1
  bhi .L15661
  b .L13691
.L13716:
  cmp r0, sl
  cmpcc r1, r7
  bcs .L13691
.L15661:
  and r3, r0, #7
  mov r2, r1, asr #3
  mov r3, r3, asl #3
  add r3, r3, r2, asl #6
  ldr r2, [sp, #124]
  and r1, r1, #7
  add r3, r3, r2
  mov r2, r0, asr #3
  ldr r0, [sp, #56]
  mla r0, r2, r0, r3
  ldrb  r0, [r0, r1]  @ zero_extendqisi2
  cmp r0, #0
  beq .L13719
  ldr r3, [r5, #0]
  mov r2, r3, lsr #16
  mov r2, r2, asl #16
  orr r1, r0, r3, asl #16
  orr r2, r2, #768
  tst r3, #256
  orr r2, r0, r2
  orr r1, r1, #768
  strne r2, [r5, #0]
  streq r1, [r5, #0]
.L13719:
  add r4, r4, #1
  add ip, ip, r9
  add lr, lr, r8
  cmp r6, r4
  mov r1, ip, asr #8
  mov r0, lr, asr #8
  add r5, r5, #4
  bgt .L13716
  b .L13691
.L15707:
  rsb r7, r5, r8
  cmp r7, #0
  ble .L13691
  ldr ip, [sp, #0]
  movs  r6, r7, lsr #3
  add r1, ip, r5, asl #2
  beq .L15573
  ldr r3, .L15735
  mov r4, r1
  add r0, r0, r3
  mov r5, r2
  mov ip, #0
.L15575:
  ldr lr, [r0, #68]
  cmp lr, #0
  beq .L15576
  ands  r3, lr, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r4, #12]
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r4, #8]
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r4, #4]
  movs  r3, lr, lsr #24
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r4, #0]
.L15576:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L15585
  ands  r3, lr, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r4, #28]
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r4, #24]
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r4, #20]
  movs  r3, lr, lsr #24
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r4, #16]
.L15585:
  add ip, ip, #1
  cmp ip, r6
  sub r5, r5, #64
  add r4, r4, #32
  sub r0, r0, #64
  bne .L15575
  rsb r3, r6, r6, asl #26
  add r2, r2, r3, asl #6
  add r1, r1, r6, asl #5
.L15573:
  ands  ip, r7, #7
  beq .L13691
  cmp ip, #3
  ldrls r2, [r2, #4]
  bls .L15608
  ldr r0, [r2, #4]
  cmp r0, #0
  beq .L15598
  ands  r3, r0, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r1, #12]
  mov r3, r0, lsr #8
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #8]
  mov r3, r0, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #4]
  movs  r3, r0, lsr #24
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #0]
.L15598:
  subs  ip, ip, #4
  ldr r2, [r2, #0]
  addne r1, r1, #16
  beq .L13691
.L15608:
  mov r0, #0
.L15609:
  ldr lr, [sp, #28]
  movs  r3, r2, lsr #24
  orr r3, lr, r3
  strne r3, [r1, r0, asl #2]
  add r0, r0, #1
  cmp ip, r0
  mov r2, r2, asl #8
  bhi .L15609
  b .L13691
.L15699:
  rsb ip, r5, r1
  cmp ip, #0
  ble .L13691
  ldr r2, [sp, #0]
  movs  sl, ip, lsr #3
  add r8, r2, r5, asl #2
  beq .L13896
  mov r5, r8
  mov r7, r0
  mov r1, #0
.L13898:
  ldr r4, [r7, #0]
  cmp r4, #0
  beq .L13899
  ands  r2, r4, #15
  beq .L13901
  ldr lr, [r5, #0]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #0]
  streq r3, [r5, #0]
.L13901:
  mov r3, r4, lsr #4
  ands  r2, r3, #15
  beq .L13905
  ldr lr, [r5, #4]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #4]
  streq r3, [r5, #4]
.L13905:
  mov r3, r4, lsr #8
  ands  r2, r3, #15
  beq .L13909
  ldr lr, [r5, #8]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #8]
  streq r3, [r5, #8]
.L13909:
  mov r3, r4, lsr #12
  ands  r2, r3, #15
  beq .L13913
  ldr lr, [r5, #12]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #12]
  streq r3, [r5, #12]
.L13913:
  mov r3, r4, lsr #16
  ands  r2, r3, #15
  beq .L13917
  ldr lr, [r5, #16]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #16]
  streq r3, [r5, #16]
.L13917:
  mov r3, r4, lsr #20
  ands  r2, r3, #15
  beq .L13921
  ldr lr, [r5, #20]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #20]
  streq r3, [r5, #20]
.L13921:
  mov r3, r4, lsr #24
  ands  r2, r3, #15
  beq .L13925
  ldr lr, [r5, #24]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #24]
  streq r3, [r5, #24]
.L13925:
  movs  r2, r4, lsr #28
  beq .L13899
  ldr lr, [r5, #28]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #28]
  streq r3, [r5, #28]
.L13899:
  add r1, r1, #1
  cmp sl, r1
  add r7, r7, #32
  add r5, r5, #32
  bne .L13898
  mov r3, sl, asl #5
  add r0, r0, r3
  add r8, r8, r3
.L13896:
  ands  r4, ip, #7
  beq .L13691
  ldr ip, [r0, #0]
  mov lr, #0
.L13934:
  ands  r3, ip, #15
  beq .L13935
  ldr r1, [r8, #0]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r8, #0]
  streq r2, [r8, #0]
.L13935:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, lsr #4
  add r8, r8, #4
  bne .L13934
  b .L13691
.L15736:
  .align  2
.L15735:
  .word vram+65472
  .word vram+65600
.L15703:
  rsb sl, r5, r4
  cmp sl, #0
  ble .L13691
  ldr lr, [sp, #0]
  movs  r8, sl, lsr #3
  add r7, lr, r5, asl #2
  beq .L14749
  ldr r3, .L15735
  mov r5, r7
  add r0, r0, r3
  mov r6, ip
  mov r1, #0
.L14751:
  ldr r2, [r0, #68]
  cmp r2, #0
  beq .L14752
  ands  lr, r2, #255
  beq .L14754
  ldr r3, [r5, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r5, #12]
  streq r3, [r5, #12]
.L14754:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L14758
  ldr r3, [r5, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r5, #8]
  streq r3, [r5, #8]
.L14758:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L14762
  ldr r3, [r5, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r5, #4]
  streq r3, [r5, #4]
.L14762:
  movs  r2, r2, lsr #24
  beq .L14752
  ldr r3, [r5, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r5, #0]
  streq r3, [r5, #0]
.L14752:
  ldr lr, [r6, #0]
  cmp lr, #0
  beq .L14769
  ands  r2, lr, #255
  beq .L14771
  ldr r4, [r5, #28]
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r5, #28]
  streq r3, [r5, #28]
.L14771:
  mov r3, lr, lsr #8
  ands  r2, r3, #255
  beq .L14775
  ldr r3, [r5, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r5, #24]
  streq r3, [r5, #24]
.L14775:
  mov r3, lr, lsr #16
  ands  r2, r3, #255
  beq .L14779
  ldr r3, [r5, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r5, #20]
  streq r3, [r5, #20]
.L14779:
  movs  r2, lr, lsr #24
  beq .L14769
  ldr lr, [r5, #16]
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #16]
  streq r3, [r5, #16]
.L14769:
  add r1, r1, #1
  cmp r1, r8
  sub r6, r6, #64
  add r5, r5, #32
  sub r0, r0, #64
  bne .L14751
  rsb r3, r8, r8, asl #26
  add ip, ip, r3, asl #6
  add r7, r7, r8, asl #5
.L14749:
  ands  r4, sl, #7
  beq .L13691
  cmp r4, #3
  ldrls ip, [ip, #4]
  bls .L14808
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L14790
  ands  r1, r2, #255
  beq .L14792
  ldr r3, [r7, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r7, #12]
  streq r3, [r7, #12]
.L14792:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L14796
  ldr r3, [r7, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r7, #8]
  streq r3, [r7, #8]
.L14796:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L14800
  ldr r3, [r7, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r7, #4]
  streq r3, [r7, #4]
.L14800:
  movs  r2, r2, lsr #24
  beq .L14790
  ldr r3, [r7, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r7, #0]
  streq r3, [r7, #0]
.L14790:
  subs  r4, r4, #4
  ldr ip, [ip, #0]
  addne r7, r7, #16
  beq .L13691
.L14808:
  mov lr, #0
.L14809:
  movs  r0, ip, lsr #24
  beq .L14810
  ldr r2, [r7, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r7, #0]
  streq r0, [r7, #0]
.L14810:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, asl #8
  add r7, r7, #4
  bhi .L14809
  b .L13691
.L15695:
  rsb r7, r5, ip
  cmp r7, #0
  ble .L13691
  ldr lr, [sp, #0]
  movs  r8, r7, lsr #3
  add r1, lr, r5, asl #2
  beq .L15018
  mov r4, r1
  mov r5, r0
  mov ip, #0
.L15020:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L15021
  ands  r3, lr, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  movs  r3, lr, lsr #28
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
.L15021:
  add ip, ip, #1
  cmp r8, ip
  add r5, r5, #32
  add r4, r4, #32
  bne .L15020
  mov r3, r8, asl #5
  add r0, r0, r3
  add r1, r1, r3
.L15018:
  ands  lr, r7, #7
  beq .L13691
  ldr r0, [r0, #0]
  mov ip, #0
.L15040:
  ldr r2, [sp, #28]
  ands  r3, r0, #15
  orr r3, r2, r3
  orr r3, r6, r3
  strne r3, [r1, ip, asl #2]
  add ip, ip, #1
  cmp ip, lr
  mov r0, r0, lsr #4
  bne .L15040
  b .L13691
.L15705:
  rsb r8, r5, r8
  cmp r8, #0
  ble .L13691
  ldr lr, [sp, #0]
  movs  r7, r8, lsr #3
  add r6, lr, r5, asl #2
  beq .L14413
  ldr r3, .L15735+4
  mov r4, r6
  add r0, r0, r3
  mov r5, ip
  mov r1, #0
.L14415:
  ldr r2, [r5, #0]
  cmp r2, #0
  beq .L14416
  ands  lr, r2, #255
  beq .L14418
  ldr r3, [r4, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L14418:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L14422
  ldr r3, [r4, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L14422:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L14426
  ldr r3, [r4, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L14426:
  movs  r2, r2, lsr #24
  beq .L14416
  ldr lr, [r4, #12]
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L14416:
  ldr r2, [r0, #-60]
  cmp r2, #0
  beq .L14433
  ands  lr, r2, #255
  beq .L14435
  ldr r3, [r4, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r4, #16]
  streq r3, [r4, #16]
.L14435:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L14439
  ldr r3, [r4, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r4, #20]
  streq r3, [r4, #20]
.L14439:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L14443
  ldr r3, [r4, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, lr, r3, asl #16
  orrne r3, lr, r3
  orreq r3, r3, #768
  strne r3, [r4, #24]
  streq r3, [r4, #24]
.L14443:
  movs  r2, r2, lsr #24
  beq .L14433
  ldr r3, [r4, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r4, #28]
  streq r3, [r4, #28]
.L14433:
  add r1, r1, #1
  cmp r1, r7
  add r5, r5, #64
  add r4, r4, #32
  add r0, r0, #64
  bne .L14415
  add ip, ip, r7, asl #6
  add r6, r6, r7, asl #5
.L14413:
  ands  r4, r8, #7
  beq .L13691
  cmp r4, #3
  ldrls ip, [ip, #0]
  bls .L14472
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L14454
  ands  r1, r2, #255
  beq .L14456
  ldr r3, [r6, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r6, #0]
  streq r3, [r6, #0]
.L14456:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L14460
  ldr r3, [r6, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r6, #4]
  streq r3, [r6, #4]
.L14460:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L14464
  ldr r3, [r6, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r6, #8]
  streq r3, [r6, #8]
.L14464:
  movs  r2, r2, lsr #24
  beq .L14454
  ldr r1, [r6, #12]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r6, #12]
  streq r3, [r6, #12]
.L14454:
  subs  r4, r4, #4
  ldr ip, [ip, #4]
  addne r6, r6, #16
  beq .L13691
.L14472:
  mov lr, #0
.L14473:
  ands  r0, ip, #255
  beq .L14474
  ldr r2, [r6, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r6, #0]
  streq r0, [r6, #0]
.L14474:
  add lr, lr, #1
  cmp r4, lr
  mov ip, ip, lsr #8
  add r6, r6, #4
  bhi .L14473
  b .L13691
.L15697:
  rsb r8, r5, r8
  cmp r8, #0
  ble .L13691
  ldr lr, [sp, #0]
  movs  r7, r8, lsr #3
  add r1, lr, r5, asl #2
  beq .L15353
  ldr r3, .L15735+4
  mov r4, r1
  add r0, r0, r3
  mov r5, ip
  mov r6, #0
.L15355:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L15356
  ands  r3, lr, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r4, #0]
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r4, #4]
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r4, #8]
  movs  r3, lr, lsr #24
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r4, #12]
.L15356:
  ldr lr, [r0, #-60]
  cmp lr, #0
  beq .L15365
  ands  r3, lr, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r4, #16]
  mov r3, lr, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r4, #20]
  mov r3, lr, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r4, #24]
  movs  r3, lr, lsr #24
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r4, #28]
.L15365:
  add r6, r6, #1
  cmp r6, r7
  add r5, r5, #64
  add r4, r4, #32
  add r0, r0, #64
  bne .L15355
  add ip, ip, r7, asl #6
  add r1, r1, r7, asl #5
.L15353:
  ands  lr, r8, #7
  beq .L13691
  cmp lr, #3
  ldrls ip, [ip, #0]
  bls .L15388
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L15378
  ands  r3, r2, #255
  ldrne r0, [sp, #28]
  orrne r3, r0, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #12]
.L15378:
  subs  lr, lr, #4
  ldr ip, [ip, #4]
  addne r1, r1, #16
  beq .L13691
.L15388:
  mov r0, #0
.L15389:
  ldr r8, [sp, #28]
  ands  r3, ip, #255
  orr r3, r8, r3
  strne r3, [r1, r0, asl #2]
  add r0, r0, #1
  cmp lr, r0
  mov ip, ip, lsr #8
  bhi .L15389
  b .L13691
.L15701:
  rsb r8, r5, ip
  cmp r8, #0
  ble .L13691
  ldr lr, [sp, #0]
  movs  r7, r8, lsr #3
  add r1, lr, r5, asl #2
  beq .L15148
  mov r4, r1
  mov r5, r0
  mov ip, #0
.L15150:
  ldr lr, [r5, #0]
  cmp lr, #0
  beq .L15151
  ands  r3, lr, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  movs  r3, lr, lsr #28
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
.L15151:
  add ip, ip, #1
  cmp ip, r7
  sub r5, r5, #32
  add r4, r4, #32
  bne .L15150
  rsb r3, r7, r7, asl #27
  add r0, r0, r3, asl #5
  add r1, r1, r7, asl #5
.L15148:
  ands  lr, r8, #7
  beq .L13691
  ldr r0, [r0, #0]
  mov ip, #0
.L15170:
  ldr r2, [sp, #28]
  movs  r3, r0, lsr #28
  orr r3, r2, r3
  orr r3, r6, r3
  strne r3, [r1, ip, asl #2]
  add ip, ip, #1
  cmp ip, lr
  mov r0, r0, asl #4
  bne .L15170
  b .L13691
.L15693:
  rsb sl, r5, r1
  cmp sl, #0
  ble .L13691
  ldr r2, [sp, #0]
  movs  ip, sl, lsr #3
  add r8, r2, r5, asl #2
  beq .L14100
  mov r5, r8
  mov r7, r0
  mov r1, #0
.L14102:
  ldr r4, [r7, #0]
  cmp r4, #0
  beq .L14103
  ands  r2, r4, #15
  beq .L14105
  ldr lr, [r5, #28]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #28]
  streq r3, [r5, #28]
.L14105:
  mov r3, r4, lsr #4
  ands  r2, r3, #15
  beq .L14109
  ldr lr, [r5, #24]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #24]
  streq r3, [r5, #24]
.L14109:
  mov r3, r4, lsr #8
  ands  r2, r3, #15
  beq .L14113
  ldr lr, [r5, #20]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #20]
  streq r3, [r5, #20]
.L14113:
  mov r3, r4, lsr #12
  ands  r2, r3, #15
  beq .L14117
  ldr lr, [r5, #16]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #16]
  streq r3, [r5, #16]
.L14117:
  mov r3, r4, lsr #16
  ands  r2, r3, #15
  beq .L14121
  ldr lr, [r5, #12]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #12]
  streq r3, [r5, #12]
.L14121:
  mov r3, r4, lsr #20
  ands  r2, r3, #15
  beq .L14125
  ldr lr, [r5, #8]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #8]
  streq r3, [r5, #8]
.L14125:
  mov r3, r4, lsr #24
  ands  r2, r3, #15
  beq .L14129
  ldr lr, [r5, #4]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #4]
  streq r3, [r5, #4]
.L14129:
  movs  r2, r4, lsr #28
  beq .L14103
  ldr lr, [r5, #0]
  orr r2, r6, r2
  tst lr, #256
  movne r3, lr, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, lr, asl #16
  strne r3, [r5, #0]
  streq r3, [r5, #0]
.L14103:
  add r1, r1, #1
  cmp ip, r1
  sub r7, r7, #32
  add r5, r5, #32
  bne .L14102
  rsb r3, ip, ip, asl #27
  add r0, r0, r3, asl #5
  add r8, r8, ip, asl #5
.L14100:
  ands  r4, sl, #7
  beq .L13691
  ldr ip, [r0, #0]
  mov lr, #0
.L14138:
  movs  r3, ip, lsr #28
  beq .L14139
  ldr r1, [r8, #0]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r8, #0]
  streq r2, [r8, #0]
.L14139:
  add lr, lr, #1
  cmp lr, r4
  mov ip, ip, asl #4
  add r8, r8, #4
  bne .L14138
  b .L13691
.L15727:
  mov r4, r9
.L14904:
  cmp r7, r3
  bhi .L15674
  b .L13691
.L14905:
  cmp lr, r7
  bcs .L13691
.L15674:
  mov r3, lr, asr #1
  and r6, r3, #3
  mov r3, lr, asr #3
  mov r3, r3, asl #5
  mov r2, lr, asr #1
  tst lr, #1
  add ip, r3, r1
  and r5, r2, #3
  add r2, r3, r1
  ldreqb  r3, [r2, r5]  @ zero_extendqisi2
  ldrneb  r3, [ip, r6]  @ zero_extendqisi2
  andeq r2, r3, #15
  movne r2, r3, lsr #4
  ldr r5, [sp, #28]
  ldr r3, [sp, #88]
  ldr ip, [sp, #136]
  add r0, r0, r3
  orr r3, r2, r5
  cmp r2, #0
  add r4, r4, #1
  orr r3, ip, r3
  strne r3, [r8, #0]
  cmp fp, r4
  mov lr, r0, asr #8
  add r8, r8, #4
  bgt .L14905
  b .L13691
.L14183:
  mov r3, r0, lsr #3
  ands  r2, r0, #7
  add r4, ip, r3, asl #6
  ldreq r0, [sp, #108]
  bne .L15709
.L14333:
  movs  lr, r8, lsr #3
  beq .L13691
  mov ip, #0
  b .L14374
.L15710:
  add r4, r4, #64
  add r0, r0, #32
.L14374:
  ldr r2, [r4, #0]
  cmp r2, #0
  beq .L14375
  ands  r1, r2, #255
  beq .L14377
  ldr r3, [r0, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L14377:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L14381
  ldr r3, [r0, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L14381:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L14385
  ldr r3, [r0, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L14385:
  movs  r2, r2, lsr #24
  beq .L14375
  ldr r1, [r0, #12]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L14375:
  ldr r2, [r4, #4]
  cmp r2, #0
  beq .L14392
  ands  r1, r2, #255
  beq .L14394
  ldr r3, [r0, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L14394:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L14398
  ldr r3, [r0, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L14398:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L14402
  ldr r3, [r0, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L14402:
  movs  r2, r2, lsr #24
  beq .L14392
  ldr r3, [r0, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L14392:
  add ip, ip, #1
  cmp ip, lr
  bne .L15710
  b .L13691
.L13775:
  mov r3, lr, lsr #3
  mov r1, r3, asl #5
  ands  r3, lr, #7
  add r5, r0, r1
  ldreq ip, [sp, #108]
  bne .L15711
.L13846:
  movs  r4, r8, lsr #3
  beq .L13691
  mov lr, #0
  b .L13858
.L15712:
  add r5, r5, #32
  add ip, ip, #32
.L13858:
  ldr r0, [r5, #0]
  cmp r0, #0
  beq .L13859
  ands  r2, r0, #15
  beq .L13861
  ldr r1, [ip, #0]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #0]
  streq r3, [ip, #0]
.L13861:
  mov r3, r0, lsr #4
  ands  r2, r3, #15
  beq .L13865
  ldr r1, [ip, #4]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #4]
  streq r3, [ip, #4]
.L13865:
  mov r3, r0, lsr #8
  ands  r2, r3, #15
  beq .L13869
  ldr r1, [ip, #8]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #8]
  streq r3, [ip, #8]
.L13869:
  mov r3, r0, lsr #12
  ands  r2, r3, #15
  beq .L13873
  ldr r1, [ip, #12]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #12]
  streq r3, [ip, #12]
.L13873:
  mov r3, r0, lsr #16
  ands  r2, r3, #15
  beq .L13877
  ldr r1, [ip, #16]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #16]
  streq r3, [ip, #16]
.L13877:
  mov r3, r0, lsr #20
  ands  r2, r3, #15
  beq .L13881
  ldr r1, [ip, #20]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #20]
  streq r3, [ip, #20]
.L13881:
  mov r3, r0, lsr #24
  ands  r2, r3, #15
  beq .L13885
  ldr r1, [ip, #24]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #24]
  streq r3, [ip, #24]
.L13885:
  movs  r2, r0, lsr #28
  beq .L13859
  ldr r1, [ip, #28]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #28]
  streq r3, [ip, #28]
.L13859:
  add lr, lr, #1
  cmp r4, lr
  bne .L15712
  b .L13691
.L15417:
  mov r3, r0, lsr #3
  ands  r1, r0, #7
  sub r2, r2, r3, asl #6
  ldreq r0, [sp, #108]
  bne .L15713
.L15521:
  movs  lr, lr, lsr #3
  beq .L13691
  mov ip, #0
  b .L15550
.L15714:
  sub r2, r2, #64
  add r0, r0, #32
.L15550:
  ldr r1, [r2, #4]
  cmp r1, #0
  beq .L15551
  ands  r3, r1, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r0, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r0, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r0, #4]
  movs  r3, r1, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r0, #0]
.L15551:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L15560
  ands  r3, r1, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r0, #28]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r0, #24]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r0, #20]
  movs  r3, r1, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r0, #16]
.L15560:
  add ip, ip, #1
  cmp ip, lr
  bne .L15714
  b .L13691
.L14519:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  sub r4, ip, r3, asl #6
  ldreq ip, [sp, #108]
  bne .L15715
.L14669:
  movs  r5, r8, lsr #3
  beq .L13691
  mov lr, #0
  b .L14710
.L15716:
  sub r4, r4, #64
  add ip, ip, #32
.L14710:
  ldr r2, [r4, #4]
  cmp r2, #0
  beq .L14711
  ands  r1, r2, #255
  beq .L14713
  ldr r3, [ip, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #12]
  streq r3, [ip, #12]
.L14713:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L14717
  ldr r3, [ip, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #8]
  streq r3, [ip, #8]
.L14717:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L14721
  ldr r3, [ip, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #4]
  streq r3, [ip, #4]
.L14721:
  movs  r2, r2, lsr #24
  beq .L14711
  ldr r3, [ip, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #0]
  streq r3, [ip, #0]
.L14711:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L14728
  ands  r2, r1, #255
  beq .L14730
  ldr r0, [ip, #28]
  tst r0, #256
  movne r3, r0, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r0, asl #16
  strne r3, [ip, #28]
  streq r3, [ip, #28]
.L14730:
  mov r3, r1, lsr #8
  ands  r2, r3, #255
  beq .L14734
  ldr r3, [ip, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #24]
  streq r3, [ip, #24]
.L14734:
  mov r3, r1, lsr #16
  ands  r2, r3, #255
  beq .L14738
  ldr r3, [ip, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #20]
  streq r3, [ip, #20]
.L14738:
  movs  r2, r1, lsr #24
  beq .L14728
  ldr r1, [ip, #16]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #16]
  streq r3, [ip, #16]
.L14728:
  add lr, lr, #1
  cmp r5, lr
  bne .L15716
  b .L13691
.L13979:
  mov r3, lr, lsr #3
  ands  r2, lr, #7
  sub ip, r0, r3, asl #5
  ldreq lr, [sp, #108]
  bne .L15717
.L14050:
  movs  r5, r8, lsr #3
  beq .L13691
  mov r4, #0
  b .L14062
.L15718:
  sub ip, ip, #32
  add lr, lr, #32
.L14062:
  ldr r0, [ip, #0]
  cmp r0, #0
  beq .L14063
  ands  r2, r0, #15
  beq .L14065
  ldr r1, [lr, #28]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #28]
  streq r3, [lr, #28]
.L14065:
  mov r3, r0, lsr #4
  ands  r2, r3, #15
  beq .L14069
  ldr r1, [lr, #24]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #24]
  streq r3, [lr, #24]
.L14069:
  mov r3, r0, lsr #8
  ands  r2, r3, #15
  beq .L14073
  ldr r1, [lr, #20]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #20]
  streq r3, [lr, #20]
.L14073:
  mov r3, r0, lsr #12
  ands  r2, r3, #15
  beq .L14077
  ldr r1, [lr, #16]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #16]
  streq r3, [lr, #16]
.L14077:
  mov r3, r0, lsr #16
  ands  r2, r3, #15
  beq .L14081
  ldr r1, [lr, #12]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #12]
  streq r3, [lr, #12]
.L14081:
  mov r3, r0, lsr #20
  ands  r2, r3, #15
  beq .L14085
  ldr r1, [lr, #8]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #8]
  streq r3, [lr, #8]
.L14085:
  mov r3, r0, lsr #24
  ands  r2, r3, #15
  beq .L14089
  ldr r1, [lr, #4]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #4]
  streq r3, [lr, #4]
.L14089:
  movs  r2, r0, lsr #28
  beq .L14063
  ldr r1, [lr, #0]
  orr r2, r6, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #0]
  streq r3, [lr, #0]
.L14063:
  add r4, r4, #1
  cmp r4, r5
  bne .L15718
  b .L13691
.L14937:
  mov r3, lr, lsr #3
  mov r1, r3, asl #5
  ands  r3, lr, #7
  add lr, r0, r1
  ldreq r1, [sp, #108]
  bne .L15719
.L14986:
  movs  ip, r4, lsr #3
  beq .L13691
  mov r0, #0
  b .L14996
.L15720:
  add lr, lr, #32
  add r1, r1, #32
.L14996:
  ldr r2, [lr, #0]
  cmp r2, #0
  beq .L14997
  ands  r3, r2, #15
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  orrne r3, r6, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r6, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r6, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  orrne r3, r6, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r6, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r6, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #28
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r1, #28]
.L14997:
  add r0, r0, #1
  cmp r0, ip
  bne .L15720
  b .L13691
.L15197:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  add r0, ip, r3, asl #6
  ldreq r1, [sp, #108]
  bne .L15721
.L15301:
  movs  lr, lr, lsr #3
  beq .L13691
  mov ip, #0
  b .L15330
.L15722:
  add r0, r0, #64
  add r1, r1, #32
.L15330:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L15331
  ands  r3, r2, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #12]
.L15331:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L15340
  ands  r3, r2, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #28]
.L15340:
  add ip, ip, #1
  cmp ip, lr
  bne .L15722
  b .L13691
.L15067:
  ands  r2, lr, #7
  mov r3, lr, lsr #3
  sub r0, r0, r3, asl #5
  ldreq r4, [sp, #108]
  bne .L15723
.L15116:
  movs  r1, r1, lsr #3
  beq .L13691
  mov r2, #0
  b .L15126
.L15724:
  sub r0, r0, #32
  add r4, r4, #32
.L15126:
  ldr lr, [r0, #0]
  cmp lr, #0
  beq .L15127
  ands  r3, lr, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r4, #28]
  mov r3, lr, lsr #4
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r6, r3
  strne r3, [r4, #24]
  mov r3, lr, lsr #8
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r6, r3
  strne r3, [r4, #20]
  mov r3, lr, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #16]
  mov r3, lr, lsr #16
  ands  r3, r3, #15
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  orrne r3, r6, r3
  strne r3, [r4, #12]
  mov r3, lr, lsr #20
  ands  r3, r3, #15
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  orrne r3, r6, r3
  strne r3, [r4, #8]
  mov r3, lr, lsr #24
  ands  r3, r3, #15
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  orrne r3, r6, r3
  strne r3, [r4, #4]
  movs  r3, lr, lsr #28
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  orrne r3, r6, r3
  strne r3, [r4, #0]
.L15127:
  add r2, r2, #1
  cmp r1, r2
  bne .L15724
  b .L13691
.L15723:
  rsbs  ip, r2, #8
  ldr lr, [r0, #0]
  ldreq r4, [sp, #108]
  beq .L15119
  mov r3, r2, asl #2
  mov lr, lr, asl r3
  mov r4, #0
.L15120:
  ldr r5, [sp, #28]
  movs  r3, lr, lsr #28
  ldrne r7, [sp, #108]
  orr r3, r5, r3
  orr r3, r6, r3
  strne r3, [r7, r4, asl #2]
  add r4, r4, #1
  cmp ip, r4
  mov lr, lr, asl #4
  bne .L15120
  ldr r8, [sp, #108]
  add r4, r8, ip, asl #2
.L15119:
  sub r0, r0, #32
  b .L15116
.L15721:
  cmp r2, #3
  rsb ip, r2, #8
  bls .L15302
  cmp ip, #0
  ldr r1, [r0, #4]
  ldreq r1, [sp, #108]
  beq .L15306
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r2, r1, lsr r3
  mov r1, #0
.L15307:
  ands  r3, r2, #255
  ldr r7, [sp, #28]
  ldrne r8, [sp, #108]
  orr r3, r7, r3
  strne r3, [r8, r1, asl #2]
  add r1, r1, #1
  cmp r1, ip
  mov r2, r2, lsr #8
  bne .L15307
  ldr r2, [sp, #108]
  add r1, r2, ip, asl #2
.L15306:
  add r0, r0, #64
  b .L15301
.L15719:
  rsbs  r5, r3, #8
  ldr r0, [r0, r1]
  ldreq r1, [sp, #108]
  beq .L14989
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  mov r2, #0
.L14990:
  ldr r7, [sp, #28]
  ands  r3, r0, #15
  ldrne r8, [sp, #108]
  orr r3, r7, r3
  orr r3, r6, r3
  strne r3, [r8, r2, asl #2]
  add r2, r2, #1
  cmp r2, r5
  mov r0, r0, lsr #4
  bne .L14990
  ldr ip, [sp, #108]
  add r1, ip, r5, asl #2
.L14989:
  add lr, lr, #32
  b .L14986
.L15715:
  cmp r2, #3
  rsb r6, r2, #8
  bls .L14670
  cmp r6, #0
  ldr r1, [r4, #0]
  ldreq ip, [sp, #108]
  beq .L14674
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, asl r3
  ldr lr, [sp, #108]
  mov r5, #0
.L14675:
  movs  r0, ip, lsr #24
  beq .L14676
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14676:
  add r5, r5, #1
  cmp r5, r6
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L14675
  ldr r2, [sp, #108]
  add ip, r2, r6, asl #2
.L14674:
  sub r4, r4, #64
  b .L14669
.L15713:
  cmp r1, #3
  rsb ip, r1, #8
  bls .L15522
  cmp ip, #0
  ldr r0, [r2, #0]
  ldreq r0, [sp, #108]
  beq .L15526
  mov r3, r1, asl #3
  sub r3, r3, #32
  mov r1, r0, asl r3
  mov r0, #0
.L15527:
  movs  r3, r1, lsr #24
  ldr r7, [sp, #28]
  ldrne r8, [sp, #108]
  orr r3, r7, r3
  strne r3, [r8, r0, asl #2]
  add r0, r0, #1
  cmp ip, r0
  mov r1, r1, asl #8
  bne .L15527
  ldr r1, [sp, #108]
  add r0, r1, ip, asl #2
.L15526:
  sub r2, r2, #64
  b .L15521
.L15717:
  rsbs  r7, r2, #8
  ldr r1, [ip, #0]
  ldreq lr, [sp, #108]
  beq .L14053
  mov r3, r2, asl #2
  mov lr, r1, asl r3
  ldr r4, [sp, #108]
  mov r5, #0
.L14054:
  movs  r3, lr, lsr #28
  beq .L14055
  ldr r1, [r4, #0]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L14055:
  add r5, r5, #1
  cmp r5, r7
  mov lr, lr, asl #4
  add r4, r4, #4
  bne .L14054
  ldr r0, [sp, #108]
  add lr, r0, r7, asl #2
.L14053:
  sub ip, ip, #32
  b .L14050
.L15711:
  rsbs  r7, r3, #8
  ldr r0, [r0, r1]
  ldreq ip, [sp, #108]
  beq .L13849
  mov r3, r3, asl #2
  mov ip, r0, lsr r3
  ldr lr, [sp, #108]
  mov r4, #0
.L13850:
  ands  r3, ip, #15
  beq .L13851
  ldr r1, [lr, #0]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L13851:
  add r4, r4, #1
  cmp r7, r4
  mov ip, ip, lsr #4
  add lr, lr, #4
  bne .L13850
  ldr lr, [sp, #108]
  add ip, lr, r7, asl #2
.L13849:
  add r5, r5, #32
  b .L13846
.L15709:
  cmp r2, #3
  rsb r6, r2, #8
  bls .L14334
  cmp r6, #0
  ldr r1, [r4, #4]
  ldreq r0, [sp, #108]
  beq .L14338
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, lsr r3
  ldr lr, [sp, #108]
  mov r5, #0
.L14339:
  ands  r0, ip, #255
  beq .L14340
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14340:
  add r5, r5, #1
  cmp r6, r5
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L14339
  ldr r7, [sp, #108]
  add r0, r7, r6, asl #2
.L14338:
  add r4, r4, #64
  b .L14333
.L14185:
  ldr r2, [sp, #144]
  rsb r5, lr, #8
  cmp r2, r5
  bge .L14188
  cmp r2, #0
  ble .L13691
  cmp lr, #3
  bls .L14191
  mov r3, lr, asl #3
  ldr r2, [r7, #4]
  sub r3, r3, #32
  mov ip, r2, lsr r3
  ldr lr, [sp, #108]
  mov r4, #0
.L14194:
  ands  r0, ip, #255
  beq .L14195
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14195:
  ldr r3, [sp, #144]
  add r4, r4, #1
  cmp r3, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L14194
  b .L13691
.L15069:
  ldr r7, [sp, #144]
  rsb r5, r4, #8
  cmp r7, r5
  bge .L15072
  cmp r7, #0
  ble .L13691
  ldr r2, [r0, #0]
  mov r3, r4, asl #2
  mov r0, r2, asl r3
  mov r2, #0
.L15076:
  ldr r8, [sp, #28]
  movs  r3, r0, lsr #28
  ldrne ip, [sp, #108]
  orr r3, r8, r3
  orr r3, r6, r3
  ldr lr, [sp, #144]
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp lr, r2
  mov r0, r0, asl #4
  bne .L15076
  b .L13691
.L15419:
  ldr r7, [sp, #144]
  rsb r0, ip, #8
  cmp r7, r0
  bge .L15422
  cmp r7, #0
  ble .L13691
  cmp ip, #3
  bls .L15425
  ldr r2, [r6, #0]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L15428:
  movs  r3, r2, lsr #24
  ldr r8, [sp, #28]
  ldrne ip, [sp, #108]
  orr r3, r8, r3
  ldr lr, [sp, #144]
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp lr, r1
  mov r2, r2, asl #8
  bne .L15428
  b .L13691
.L13981:
  ldr r2, [sp, #144]
  rsb r7, r4, #8
  cmp r2, r7
  bge .L13984
  cmp r2, #0
  ble .L13691
  ldr r2, [ip, #0]
  mov r3, r4, asl #2
  mov ip, r2, asl r3
  ldr lr, [sp, #108]
  mov r4, #0
.L13988:
  movs  r3, ip, lsr #28
  beq .L13989
  ldr r1, [lr, #0]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L13989:
  ldr r3, [sp, #144]
  add r4, r4, #1
  cmp r3, r4
  mov ip, ip, asl #4
  add lr, lr, #4
  bne .L13988
  b .L13691
.L14521:
  ldr r0, [sp, #144]
  rsb r5, lr, #8
  cmp r0, r5
  bge .L14524
  cmp r0, #0
  ble .L13691
  cmp lr, #3
  bls .L14527
  mov r3, lr, asl #3
  ldr r2, [r8, #0]
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #108]
  mov r4, #0
.L14530:
  movs  r0, ip, lsr #24
  beq .L14531
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14531:
  ldr r1, [sp, #144]
  add r4, r4, #1
  cmp r1, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L14530
  b .L13691
.L14939:
  ldr r2, [sp, #144]
  rsb lr, r3, #8
  cmp r2, lr
  bge .L14942
  cmp r2, #0
  ble .L13691
  ldr r2, [r0, r1]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  mov r2, #0
.L14946:
  ldr r4, [sp, #28]
  ands  r3, r0, #15
  ldrne r5, [sp, #108]
  orr r3, r4, r3
  orr r3, r6, r3
  ldr r7, [sp, #144]
  strne r3, [r5, r2, asl #2]
  add r2, r2, #1
  cmp r7, r2
  mov r0, r0, lsr #4
  bne .L14946
  b .L13691
.L13777:
  ldr r2, [sp, #144]
  rsb r5, r3, #8
  cmp r2, r5
  bge .L13780
  cmp r2, #0
  ble .L13691
  ldr r2, [r0, r1]
  mov r3, r3, asl #2
  mov ip, r2, lsr r3
  ldr lr, [sp, #108]
  mov r4, #0
.L13784:
  ands  r3, ip, #15
  beq .L13785
  ldr r1, [lr, #0]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L13785:
  ldr r3, [sp, #144]
  add r4, r4, #1
  cmp r3, r4
  mov ip, ip, lsr #4
  add lr, lr, #4
  bne .L13784
  b .L13691
.L15199:
  ldr r5, [sp, #144]
  rsb r0, lr, #8
  cmp r5, r0
  bge .L15202
  cmp r5, #0
  ble .L13691
  cmp lr, #3
  bls .L15205
  ldr r2, [r6, #4]
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L15208:
  ands  r3, r1, #255
  ldr r7, [sp, #28]
  ldrne r8, [sp, #108]
  orr r3, r7, r3
  ldr ip, [sp, #144]
  strne r3, [r8, r2, asl #2]
  add r2, r2, #1
  cmp ip, r2
  mov r1, r1, lsr #8
  bne .L15208
  b .L13691
.L13984:
  cmp r7, #0
  ldr r2, [ip, #0]
  ldreq r5, [sp, #108]
  beq .L13996
  mov r3, r4, asl #2
  mov lr, r2, asl r3
  ldr r4, [sp, #108]
  mov r5, #0
.L13997:
  movs  r3, lr, lsr #28
  beq .L13998
  ldr r1, [r4, #0]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L13998:
  add r5, r5, #1
  cmp r7, r5
  mov lr, lr, asl #4
  add r4, r4, #4
  bne .L13997
  ldr r4, [sp, #108]
  add r5, r4, r7, asl #2
.L13996:
  ldr r8, [sp, #144]
  sub ip, ip, #32
  rsb sl, r7, r8
  b .L13983
.L14188:
  cmp lr, #3
  bls .L14226
  cmp r5, #0
  ldr r2, [r7, #4]
  ldreq r4, [sp, #108]
  beq .L14230
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, lsr r3
  ldr lr, [sp, #108]
  mov r4, #0
.L14231:
  ands  r0, ip, #255
  beq .L14232
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14232:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L14231
  ldr r2, [sp, #108]
  add r4, r2, r5, asl #2
.L14230:
  ldr r3, [sp, #144]
  add r7, r7, #64
  rsb r6, r5, r3
  b .L14187
.L14524:
  cmp lr, #3
  bls .L14562
  cmp r5, #0
  ldr r2, [r8, #0]
  ldreq r4, [sp, #108]
  beq .L14566
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #108]
  mov r4, #0
.L14567:
  movs  r0, ip, lsr #24
  beq .L14568
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14568:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L14567
  ldr lr, [sp, #108]
  add r4, lr, r5, asl #2
.L14566:
  ldr r0, [sp, #144]
  sub r8, r8, #64
  rsb r7, r5, r0
  b .L14523
.L15302:
  subs  r4, ip, #4
  ldr r1, [r0, #0]
  ldreq r1, [sp, #108]
  beq .L15314
  mov r3, r2, asl #3
  mov r2, r1, lsr r3
  mov r1, #0
.L15315:
  ands  r3, r2, #255
  ldr r5, [sp, #28]
  ldrne r7, [sp, #108]
  orr r3, r5, r3
  strne r3, [r7, r1, asl #2]
  add r1, r1, #1
  cmp r4, r1
  mov r2, r2, lsr #8
  bne .L15315
  ldr r8, [sp, #108]
  add r3, r8, ip, asl #2
  sub r1, r3, #16
.L15314:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L15320
  ands  r3, r2, #255
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #12]
.L15320:
  add r1, r1, #16
  add r0, r0, #64
  b .L15301
.L15522:
  subs  r4, ip, #4
  ldr r0, [r2, #4]
  ldreq r0, [sp, #108]
  beq .L15534
  mov r3, r1, asl #3
  sub r3, r3, #32
  mov r1, r0, asl r3
  mov r0, #0
.L15535:
  movs  r3, r1, lsr #24
  ldr r5, [sp, #28]
  ldrne r7, [sp, #108]
  orr r3, r5, r3
  strne r3, [r7, r0, asl #2]
  add r0, r0, #1
  cmp r0, r4
  mov r1, r1, asl #8
  bne .L15535
  ldr r8, [sp, #108]
  add r3, r8, ip, asl #2
  sub r0, r3, #16
.L15534:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L15540
  ands  r3, r1, #255
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  strne r3, [r0, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #28]
  orrne r3, r4, r3
  strne r3, [r0, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #28]
  orrne r3, r5, r3
  strne r3, [r0, #4]
  movs  r3, r1, lsr #24
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r0, #0]
.L15540:
  add r0, r0, #16
  sub r2, r2, #64
  b .L15521
.L15202:
  cmp lr, #3
  bls .L15232
  cmp r0, #0
  ldr r2, [r6, #4]
  ldreq r4, [sp, #108]
  beq .L15236
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L15237:
  ands  r3, r1, #255
  ldr r7, [sp, #28]
  ldrne r8, [sp, #108]
  orr r3, r7, r3
  strne r3, [r8, r2, asl #2]
  add r2, r2, #1
  cmp r0, r2
  mov r1, r1, lsr #8
  bne .L15237
  ldr ip, [sp, #108]
  add r4, ip, r0, asl #2
.L15236:
  ldr r1, [sp, #144]
  add r6, r6, #64
  rsb r5, r0, r1
  b .L15201
.L13780:
  cmp r5, #0
  ldr r2, [r8, #0]
  ldreq r4, [sp, #108]
  beq .L13792
  mov r3, r3, asl #2
  mov ip, r2, lsr r3
  ldr lr, [sp, #108]
  mov r4, #0
.L13793:
  ands  r3, ip, #15
  beq .L13794
  ldr r1, [lr, #0]
  orr r2, r6, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [lr, #0]
  streq r2, [lr, #0]
.L13794:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #4
  add lr, lr, #4
  bne .L13793
  ldr r7, [sp, #108]
  add r4, r7, r5, asl #2
.L13792:
  ldr ip, [sp, #144]
  add r8, r8, #32
  rsb sl, r5, ip
  b .L13779
.L15422:
  cmp ip, #3
  bls .L15452
  cmp r0, #0
  ldr r2, [r6, #0]
  ldreq r4, [sp, #108]
  beq .L15456
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L15457:
  movs  r3, r2, lsr #24
  ldr r7, [sp, #28]
  ldrne r8, [sp, #108]
  orr r3, r7, r3
  strne r3, [r8, r1, asl #2]
  add r1, r1, #1
  cmp r0, r1
  mov r2, r2, asl #8
  bne .L15457
  ldr ip, [sp, #108]
  add r4, ip, r0, asl #2
.L15456:
  ldr r3, [sp, #144]
  sub r6, r6, #64
  rsb r5, r0, r3
  b .L15421
.L15072:
  cmp r5, #0
  ldr r2, [r0, #0]
  ldreq r1, [sp, #108]
  beq .L15082
  mov r3, r4, asl #2
  mov lr, r2, asl r3
  mov r4, #0
.L15083:
  ldr r1, [sp, #28]
  movs  r3, lr, lsr #28
  ldrne r2, [sp, #108]
  orr r3, r1, r3
  orr r3, r6, r3
  strne r3, [r2, r4, asl #2]
  add r4, r4, #1
  cmp r5, r4
  mov lr, lr, asl #4
  bne .L15083
  ldr r3, [sp, #108]
  add r1, r3, r5, asl #2
.L15082:
  ldr r4, [sp, #144]
  sub r0, r0, #32
  rsb r2, r5, r4
  b .L15071
.L14334:
  subs  r7, r6, #4
  ldr r1, [r4, #0]
  ldreq r2, [sp, #108]
  beq .L14348
  mov r3, r2, asl #3
  mov ip, r1, lsr r3
  ldr lr, [sp, #108]
  mov r5, #0
.L14349:
  ands  r0, ip, #255
  beq .L14350
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14350:
  add r5, r5, #1
  cmp r7, r5
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L14349
  ldr r5, [sp, #108]
  add r3, r5, r6, asl #2
  sub r2, r3, #16
.L14348:
  ldr r1, [r4, #4]
  cmp r1, #0
  beq .L14356
  ands  r0, r1, #255
  beq .L14358
  ldr r3, [r2, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #0]
  streq r3, [r2, #0]
.L14358:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L14362
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L14362:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L14366
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L14366:
  movs  r1, r1, lsr #24
  beq .L14356
  ldr r3, [r2, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orrne r3, r1, r3
  strne r3, [r2, #12]
  orreq r3, r1, r3, asl #16
  orreq r3, r3, #768
  streq r3, [r2, #12]
.L14356:
  add r0, r2, #16
  add r4, r4, #64
  b .L14333
.L14670:
  subs  r7, r6, #4
  ldr r1, [r4, #4]
  ldreq r2, [sp, #108]
  beq .L14684
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, asl r3
  ldr lr, [sp, #108]
  mov r5, #0
.L14685:
  movs  r0, ip, lsr #24
  beq .L14686
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14686:
  add r5, r5, #1
  cmp r5, r7
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L14685
  ldr r1, [sp, #108]
  add r3, r1, r6, asl #2
  sub r2, r3, #16
.L14684:
  ldr r1, [r4, #0]
  cmp r1, #0
  beq .L14692
  ands  r0, r1, #255
  beq .L14694
  ldr r3, [r2, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #12]
  streq r3, [r2, #12]
.L14694:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L14698
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L14698:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L14702
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L14702:
  movs  r1, r1, lsr #24
  beq .L14692
  ldr r3, [r2, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orrne r3, r1, r3
  strne r3, [r2, #0]
  orreq r3, r1, r3, asl #16
  orreq r3, r3, #768
  streq r3, [r2, #0]
.L14692:
  add ip, r2, #16
  sub r4, r4, #64
  b .L14669
.L14942:
  cmp lr, #0
  ldr r2, [r4, #0]
  ldreq r7, [sp, #108]
  beq .L14952
  mov r3, r3, asl #2
  mov r2, r2, lsr r3
  mov r1, #0
.L14953:
  ldr r8, [sp, #28]
  ands  r3, r2, #15
  ldrne ip, [sp, #108]
  orr r3, r8, r3
  orr r3, r6, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp lr, r1
  mov r2, r2, lsr #4
  bne .L14953
  ldr r0, [sp, #108]
  add r7, r0, lr, asl #2
.L14952:
  ldr r1, [sp, #144]
  add r4, r4, #32
  rsb r5, lr, r1
  b .L14941
.L15726:
  mov ip, fp
  b .L15672
.L15725:
  ldr ip, [sp, #12]
  b .L15660
.L15728:
  ldr lr, [sp, #16]
  b .L15662
.L15452:
  subs  lr, r0, #4
  ldr r2, [r6, #4]
  ldreq r1, [sp, #108]
  beq .L15464
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L15465:
  movs  r3, r2, lsr #24
  ldr r4, [sp, #28]
  ldrne r5, [sp, #108]
  orr r3, r4, r3
  strne r3, [r5, r1, asl #2]
  add r1, r1, #1
  cmp r1, lr
  mov r2, r2, asl #8
  bne .L15465
  ldr r7, [sp, #108]
  add r3, r7, r0, asl #2
  sub r1, r3, #16
.L15464:
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L15470
  ands  r3, r2, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r1, #4]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #28]
  orrne r3, r2, r3
  strne r3, [r1, #0]
.L15470:
  add r4, r1, #16
  b .L15456
.L15232:
  subs  ip, r0, #4
  ldr r2, [r6, #0]
  ldreq r1, [sp, #108]
  beq .L15244
  mov r3, lr, asl #3
  mov r1, r2, lsr r3
  mov r2, #0
.L15245:
  ands  r3, r1, #255
  ldr lr, [sp, #28]
  ldrne r4, [sp, #108]
  orr r3, lr, r3
  strne r3, [r4, r2, asl #2]
  add r2, r2, #1
  cmp ip, r2
  mov r1, r1, lsr #8
  bne .L15245
  ldr r5, [sp, #108]
  add r3, r5, r0, asl #2
  sub r1, r3, #16
.L15244:
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L15250
  ands  r3, r2, #255
  ldrne r7, [sp, #28]
  orrne r3, r7, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #28]
  orrne r3, r8, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne ip, [sp, #28]
  orrne r3, ip, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne lr, [sp, #28]
  orrne r3, lr, r3
  strne r3, [r1, #12]
.L15250:
  add r4, r1, #16
  b .L15236
.L14562:
  subs  r6, r5, #4
  ldr r2, [r8, #4]
  ldreq r2, [sp, #108]
  beq .L14576
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #108]
  mov r4, #0
.L14577:
  movs  r0, ip, lsr #24
  beq .L14578
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14578:
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L14577
  ldr ip, [sp, #108]
  add r3, ip, r5, asl #2
  sub r2, r3, #16
.L14576:
  ldr r1, [r8, #0]
  cmp r1, #0
  beq .L14584
  ands  r0, r1, #255
  beq .L14586
  ldr r3, [r2, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #12]
  streq r3, [r2, #12]
.L14586:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L14590
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L14590:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L14594
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L14594:
  movs  r1, r1, lsr #24
  beq .L14584
  ldr r3, [r2, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orrne r3, r1, r3
  strne r3, [r2, #0]
  orreq r3, r1, r3, asl #16
  orreq r3, r3, #768
  streq r3, [r2, #0]
.L14584:
  add r4, r2, #16
  b .L14566
.L14226:
  subs  r6, r5, #4
  ldr r2, [r7, #0]
  ldreq r2, [sp, #108]
  beq .L14240
  mov r3, lr, asl #3
  mov ip, r2, lsr r3
  ldr lr, [sp, #108]
  mov r4, #0
.L14241:
  ands  r0, ip, #255
  beq .L14242
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14242:
  add r4, r4, #1
  cmp r4, r6
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L14241
  ldr r1, [sp, #108]
  add r3, r1, r5, asl #2
  sub r2, r3, #16
.L14240:
  ldr r1, [r7, #4]
  cmp r1, #0
  beq .L14248
  ands  r0, r1, #255
  beq .L14250
  ldr r3, [r2, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #0]
  streq r3, [r2, #0]
.L14250:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L14254
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L14254:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L14258
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L14258:
  movs  r1, r1, lsr #24
  beq .L14248
  ldr r3, [r2, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orrne r3, r1, r3
  strne r3, [r2, #12]
  orreq r3, r1, r3, asl #16
  orreq r3, r3, #768
  streq r3, [r2, #12]
.L14248:
  add r4, r2, #16
  b .L14230
.L15205:
  ldr r0, [sp, #144]
  ldr r3, [r6, #0]
  add r2, r0, lr
  cmp r2, #4
  mov r1, lr, asl #3
  mov r2, r3, lsr r1
  bhi .L15212
  cmp r0, #0
  movne r1, #0
  beq .L13691
.L15228:
  ands  r3, r2, #255
  ldr r0, [sp, #28]
  ldrne r4, [sp, #108]
  orr r3, r0, r3
  ldr r5, [sp, #144]
  strne r3, [r4, r1, asl #2]
  add r1, r1, #1
  cmp r5, r1
  mov r2, r2, lsr #8
  bne .L15228
  b .L13691
.L14527:
  ldr r4, [sp, #144]
  mov r3, lr, asl #3
  ldr r1, [r8, #4]
  add r2, r4, lr
  sub r3, r3, #32
  cmp r2, #4
  mov ip, r1, asl r3
  bhi .L14536
  cmp r4, #0
  ldrne lr, [sp, #108]
  movne r4, #0
  beq .L13691
.L14556:
  movs  r0, ip, lsr #24
  beq .L14557
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14557:
  ldr r8, [sp, #144]
  add r4, r4, #1
  cmp r8, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L14556
  b .L13691
.L15425:
  ldr r0, [sp, #144]
  mov r3, ip, asl #3
  ldr r1, [r6, #4]
  add r2, r0, ip
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L15432
  cmp r0, #0
  movne r2, #0
  beq .L13691
.L15448:
  movs  r3, r1, lsr #24
  ldr r0, [sp, #28]
  ldrne r4, [sp, #108]
  orr r3, r0, r3
  ldr r5, [sp, #144]
  strne r3, [r4, r2, asl #2]
  add r2, r2, #1
  cmp r5, r2
  mov r1, r1, asl #8
  bne .L15448
  b .L13691
.L14191:
  ldr r4, [sp, #144]
  ldr r3, [r7, #0]
  add r2, r4, lr
  mov r1, lr, asl #3
  cmp r2, #4
  mov ip, r3, lsr r1
  bhi .L14200
  cmp r4, #0
  ldrne lr, [sp, #108]
  movne r4, #0
  beq .L13691
.L14220:
  ands  r0, ip, #255
  beq .L14221
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14221:
  ldr r0, [sp, #144]
  add r4, r4, #1
  cmp r0, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L14220
  b .L13691
.L14200:
  rsbs  r4, lr, #4
  ldreq lr, [sp, #108]
  beq .L14205
  ldr lr, [sp, #108]
  mov r5, #0
.L14206:
  ands  r0, ip, #255
  beq .L14207
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14207:
  add r5, r5, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L14206
  ldr r5, [sp, #108]
  add lr, r5, r4, asl #2
.L14205:
  ldr r8, [sp, #144]
  ldr ip, [r7, #4]
  subs  r5, r8, r4
  beq .L13691
  mov r4, #0
.L14214:
  ands  r0, ip, #255
  beq .L14215
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14215:
  add r4, r4, #1
  cmp r4, r5
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L14214
  b .L13691
.L15432:
  rsbs  r0, ip, #4
  ldreq ip, [sp, #108]
  beq .L15437
  mov r2, #0
.L15438:
  movs  r3, r1, lsr #24
  ldr r4, [sp, #28]
  ldrne r5, [sp, #108]
  orr r3, r4, r3
  strne r3, [r5, r2, asl #2]
  add r2, r2, #1
  cmp r2, r0
  mov r1, r1, asl #8
  bne .L15438
  ldr r7, [sp, #108]
  add ip, r7, r0, asl #2
.L15437:
  ldr r8, [sp, #144]
  ldr r2, [r6, #0]
  subs  r0, r8, r0
  beq .L13691
  mov r1, #0
.L15444:
  ldr lr, [sp, #28]
  movs  r3, r2, lsr #24
  orr r3, lr, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, asl #8
  bne .L15444
  b .L13691
.L14536:
  rsbs  r4, lr, #4
  ldreq lr, [sp, #108]
  beq .L14541
  ldr lr, [sp, #108]
  mov r5, #0
.L14542:
  movs  r0, ip, lsr #24
  beq .L14543
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14543:
  add r5, r5, #1
  cmp r4, r5
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L14542
  ldr r5, [sp, #108]
  add lr, r5, r4, asl #2
.L14541:
  ldr r7, [sp, #144]
  ldr ip, [r8, #0]
  subs  r5, r7, r4
  beq .L13691
  mov r4, #0
.L14550:
  movs  r0, ip, lsr #24
  beq .L14551
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L14551:
  add r4, r4, #1
  cmp r4, r5
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L14550
  b .L13691
.L15212:
  rsbs  r0, lr, #4
  ldreq ip, [sp, #108]
  beq .L15217
  mov r1, #0
.L15218:
  ands  r3, r2, #255
  ldr r4, [sp, #28]
  ldrne r5, [sp, #108]
  orr r3, r4, r3
  strne r3, [r5, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, lsr #8
  bne .L15218
  ldr r7, [sp, #108]
  add ip, r7, r0, asl #2
.L15217:
  ldr r8, [sp, #144]
  ldr r2, [r6, #4]
  subs  r0, r8, r0
  beq .L13691
  mov r1, #0
.L15224:
  ldr lr, [sp, #28]
  ands  r3, r2, #255
  orr r3, lr, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, lsr #8
  bne .L15224
  b .L13691
  .size render_scanline_obj_partial_alpha_1D, .-render_scanline_obj_partial_alpha_1D
  .align  2
  .global render_scanline_obj_partial_alpha_2D
  .type render_scanline_obj_partial_alpha_2D, %function
render_scanline_obj_partial_alpha_2D:
  @ args = 0, pretend = 0, frame = 140
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr ip, .L17801
  sub sp, sp, #140
  ldrh  r4, [ip, #6]
  add r0, r0, r0, asl #2
  str r4, [sp, #60]
  ldr r5, [sp, #60]
  ldrh  r4, [ip, #80]
  ldr ip, .L17801+4
  add r0, r5, r0, asl #5
  ldr ip, [ip, r0, asl #2]
  mov lr, r4, lsr #11
  and lr, lr, #2
  mov r4, r4, asl #27
  str ip, [sp, #64]
  orr lr, lr, r4, lsr #31
  cmp ip, #0
  ldr ip, .L17801+8
  mov lr, lr, asl #9
  add r0, ip, r0, asl #7
  orr lr, lr, #256
  str r0, [sp, #68]
  str r1, [sp, #12]
  str r2, [sp, #8]
  str r3, [sp, #4]
  str lr, [sp, #52]
  beq .L17699
  mov ip, #0
  add r7, r3, r1, asl #2
  rsb r8, r1, r2
  str r7, [sp, #96]
  str r8, [sp, #128]
  str ip, [sp, #56]
  mov lr, ip
.L15740:
  ldr r0, [sp, #68]
  ldr r1, .L17801+12
  ldrb  r3, [lr, r0]  @ zero_extendqisi2
  mov r3, r3, asl #3
  ldrh  r4, [r3, r1]
  add r3, r3, r1
  ldrh  r1, [r3, #2]
  mov ip, r4, lsr #12
  and r2, ip, #12
  orr r0, r2, r1, lsr #14
  and r5, r4, #255
  mov r2, r1, asl #23
  cmp r5, #160
  ldrh  lr, [r3, #4]
  mov r6, r2, asr #23
  ldr r3, .L17801+16
  ldr r2, .L17801+20
  subgt r5, r5, #256
  tst r4, #3072
  ldr sl, [r2, r0, asl #2]
  ldr r8, [r3, r0, asl #2]
  beq .L15743
  tst r4, #256
  beq .L15745
  tst r4, #8192
  beq .L15747
  tst r4, #512
  mov r3, r1, lsr #4
  ldr r4, .L17801+12
  and r3, r3, #992
  add r3, r3, r4
  add r2, sl, sl, lsr #31
  ldrh  r7, [r3, #30]
  mov r4, r2, asr #1
  add r1, r8, r8, lsr #31
  ldr r2, [sp, #12]
  mov r9, r1, asr #1
  ldrh  fp, [r3, #6]
  ldrh  r1, [r3, #14]
  ldrh  r3, [r3, #22]
  str r7, [sp, #20]
  moveq ip, r4
  moveq r7, sl
  moveq r0, r9
  movne r7, sl, asl #1
  movne ip, r4, asl #1
  movne r0, r9, asl #1
  cmp r6, r2
  str r3, [sp, #16]
  bge .L15752
  rsb r2, r6, r2
  rsb r7, r2, r7
  cmp r7, #0
  ble .L15754
  ldr r6, [sp, #12]
  rsb ip, r2, ip
.L15752:
  ldr r2, [sp, #8]
  add r3, r6, r7
  cmp r3, r2
  blt .L15756
  rsb r7, r6, r2
  cmp r7, #0
  ble .L15754
.L15756:
  add r0, r5, r0
  ldr r5, [sp, #20]
  mov r2, r1, asl #16
  mov r1, r5, asl #16
  ldr r5, [sp, #16]
  mov r3, fp, asl #16
  cmp r5, #0
  mov fp, r3, asr #16
  mov r5, r2, asr #16
  ldr r3, [sp, #60]
  ldr r2, [sp, #4]
  mov r4, r4, asl #8
  str r4, [sp, #100]
  mov r1, r1, asr #16
  mov r4, r9, asl #8
  add r6, r2, r6, asl #2
  rsb r0, r0, r3
  bne .L15758
  mla r3, r0, r1, r4
  mov r2, r3, asr #8
  cmp r2, r8
  bcs .L15754
  mov r3, lr, asl #22
  mov r1, r2, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r1, asl #5
  and r2, r2, #7
  ldr r4, .L17801+24
  add r2, r2, r3, asl #2
  cmp r7, #0
  add lr, r4, r2, asl #3
  ble .L15754
  mul r3, r0, r5
  mul r2, fp, ip
  ldr r5, [sp, #100]
  rsb r3, r2, r3
  add r0, r5, r3
  mov r2, r0, asr #8
  cmp r2, sl
  ldrcs ip, [sp, #16]
  bcs .L15764
  b .L17793
.L15765:
  cmp r2, sl
  bcc .L15766
.L15764:
  add ip, ip, #1
  add r0, r0, fp
  cmp r7, ip
  mov r2, r0, asr #8
  add r6, r6, #4
  bne .L15765
.L15754:
  ldr ip, [sp, #56]
  ldr lr, [sp, #64]
  add ip, ip, #1
  cmp ip, lr
  str ip, [sp, #56]
  beq .L17699
.L17751:
  ldr lr, [sp, #56]
  b .L15740
.L15743:
  tst r4, #256
  beq .L16917
  tst r4, #8192
  beq .L16919
  mov r3, r1, lsr #4
  ldr r7, .L17801+12
  and r3, r3, #992
  add r3, r3, r7
  add r1, r8, r8, lsr #31
  ldrh  ip, [r3, #30]
  mov r7, r1, asr #1
  ldrh  r0, [r3, #6]
  add r2, sl, sl, lsr #31
  ldr r1, [sp, #12]
  tst r4, #512
  mov r4, r2, asr #1
  str ip, [sp, #36]
  str r0, [sp, #32]
  moveq r9, sl
  moveq ip, r4
  moveq r0, r7
  movne r9, sl, asl #1
  movne ip, r4, asl #1
  movne r0, r7, asl #1
  cmp r6, r1
  ldrh  r2, [r3, #14]
  ldrh  fp, [r3, #22]
  bge .L16924
  rsb r1, r6, r1
  rsb r9, r1, r9
  cmp r9, #0
  ble .L15754
  ldr r6, [sp, #12]
  rsb ip, r1, ip
.L16924:
  ldr r1, [sp, #8]
  add r3, r6, r9
  cmp r3, r1
  blt .L16927
  rsb r9, r6, r1
  cmp r9, #0
  ble .L15754
.L16927:
  add r0, r5, r0
  ldr r5, [sp, #32]
  mov r2, r2, asl #16
  mov r3, r5, asl #16
  ldr r5, [sp, #36]
  mov r3, r3, asr #16
  mov r1, r5, asl #16
  str r3, [sp, #80]
  mov r5, r2, asr #16
  ldr r3, [sp, #60]
  ldr r2, [sp, #4]
  mov r4, r4, asl #8
  cmp fp, #0
  str r4, [sp, #132]
  mov r1, r1, asr #16
  mov r4, r7, asl #8
  rsb r0, r0, r3
  add r7, r2, r6, asl #2
  bne .L16929
  mla r3, r0, r1, r4
  mov r2, r3, asr #8
  cmp r2, r8
  bcs .L15754
  mov r3, lr, asl #22
  mov r1, r2, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r1, asl #5
  and r2, r2, #7
  ldr r4, .L17801+24
  add r2, r2, r3, asl #2
  cmp r9, #0
  add lr, r4, r2, asl #3
  ble .L15754
  ldr r2, [sp, #80]
  mul r3, r0, r5
  mul r2, ip, r2
  ldr r5, [sp, #132]
  rsb r3, r2, r3
  add r0, r5, r3
  mov r4, r0, asr #8
  cmp r4, sl
  movcs ip, fp
  bcs .L16935
  b .L17794
.L16936:
  cmp r4, sl
  bcc .L17737
.L16935:
  ldr r8, [sp, #80]
  add ip, ip, #1
  add r0, r0, r8
  cmp r9, ip
  mov r4, r0, asr #8
  add r7, r7, #4
  bne .L16936
  ldr ip, [sp, #56]
  ldr lr, [sp, #64]
  add ip, ip, #1
  cmp ip, lr
  str ip, [sp, #56]
  bne .L17751
.L17699:
  add sp, sp, #140
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L15745:
  ldr r2, [sp, #60]
  tst r1, #8192
  rsb r0, r5, r2
  rsbne r3, r0, r8
  subne r0, r3, #1
  mov r2, r1, asl #19
  and r3, ip, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L15754
  .p2align 2
.L15836:
  .word .L15832
  .word .L15833
  .word .L15834
  .word .L15835
.L16917:
  ldr r2, [sp, #60]
  tst r1, #8192
  rsb r0, r5, r2
  rsbne r3, r0, r8
  subne r0, r3, #1
  mov r2, r1, asl #19
  and r3, ip, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L15754
  .p2align 2
.L16998:
  .word .L16994
  .word .L16995
  .word .L16996
  .word .L16997
.L16919:
  mov r3, r1, lsr #4
  ldr r1, .L17801+12
  and r3, r3, #992
  add r3, r3, r1
  tst r4, #512
  add r1, r8, r8, lsr #31
  ldrh  r4, [r3, #30]
  mov r7, r1, asr #1
  add r2, sl, sl, lsr #31
  ldr r1, [sp, #12]
  ldrh  ip, [r3, #6]
  str r4, [sp, #48]
  mov r4, r2, asr #1
  ldrh  r2, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq fp, sl
  moveq r9, r4
  moveq r0, r7
  movne fp, sl, asl #1
  movne r9, r4, asl #1
  movne r0, r7, asl #1
  cmp r6, r1
  str ip, [sp, #40]
  str r3, [sp, #44]
  bge .L16956
  rsb r1, r6, r1
  rsb fp, r1, fp
  cmp fp, #0
  ble .L15754
  ldr r6, [sp, #12]
  rsb r9, r1, r9
.L16956:
  ldr ip, [sp, #8]
  add r3, r6, fp
  cmp r3, ip
  blt .L16959
  rsb fp, r6, ip
  cmp fp, #0
  ble .L15754
.L16959:
  add ip, r5, r0
  ldr r0, [sp, #40]
  ldr r5, [sp, #48]
  mov r3, r0, asl #16
  ldr r0, [sp, #44]
  mov r2, r2, asl #16
  mov r3, r3, asr #16
  mov r1, r5, asl #16
  cmp r0, #0
  str r3, [sp, #84]
  mov r0, lr, lsr #8
  mov r5, r2, asr #16
  ldr r3, [sp, #60]
  ldr r2, [sp, #4]
  mov r4, r4, asl #8
  and r0, r0, #240
  str r4, [sp, #92]
  mov r1, r1, asr #16
  mov r4, r7, asl #8
  rsb ip, ip, r3
  add r7, r2, r6, asl #2
  str r0, [sp, #116]
  bne .L16961
  mla r3, ip, r1, r4
  mov r2, r3, asr #8
  cmp r2, r8
  bcs .L15754
  mov r3, lr, asl #22
  mov r1, r2, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r1, asl #5
  and r2, r2, #7
  ldr r4, .L17801+24
  add r2, r2, r3, asl #3
  cmp fp, #0
  add r1, r4, r2, asl #2
  ble .L15754
  ldr r2, [sp, #84]
  mul r3, ip, r5
  mul r2, r9, r2
  ldr r5, [sp, #92]
  rsb r3, r2, r3
  add r0, r5, r3
  mov r3, r0, asr #8
  cmp r3, sl
  mov r4, r3
  ldrcs r5, [sp, #44]
  bcs .L16967
  b .L17795
.L16968:
  cmp r3, sl
  bcc .L16969
.L16967:
  ldr r8, [sp, #84]
  add r5, r5, #1
  add r0, r0, r8
  mov r3, r0, asr #8
  cmp fp, r5
  add r7, r7, #4
  mov r4, r3
  bne .L16968
  b .L15754
.L15747:
  mov r3, r1, lsr #4
  ldr r7, .L17801+12
  and r3, r3, #992
  add r3, r3, r7
  add r1, r8, r8, lsr #31
  tst r4, #512
  ldrh  r0, [r3, #6]
  add r2, sl, sl, lsr #31
  mov r7, r1, asr #1
  ldrh  ip, [r3, #30]
  ldrh  r1, [r3, #14]
  ldrh  fp, [r3, #22]
  ldr r3, [sp, #12]
  mov r4, r2, asr #1
  movne r2, sl, asl #1
  str r0, [sp, #24]
  streq sl, [sp, #136]
  moveq r9, r4
  moveq r0, r7
  strne r2, [sp, #136]
  movne r9, r4, asl #1
  movne r0, r7, asl #1
  cmp r6, r3
  str ip, [sp, #28]
  bge .L15790
  ldr ip, [sp, #136]
  rsb r2, r6, r3
  rsb ip, r2, ip
  cmp ip, #0
  str ip, [sp, #136]
  ble .L15754
  rsb r9, r2, r9
  mov r6, r3
.L15790:
  ldr r2, [sp, #136]
  ldr ip, [sp, #8]
  add r3, r6, r2
  cmp r3, ip
  blt .L15793
  rsb r2, r6, ip
  cmp r2, #0
  str r2, [sp, #136]
  ble .L15754
.L15793:
  add ip, r5, r0
  ldr r5, [sp, #24]
  ldr r0, [sp, #28]
  mov r3, r5, asl #16
  mov r2, r1, asl #16
  mov r3, r3, asr #16
  mov r1, r0, asl #16
  str r3, [sp, #72]
  mov r0, lr, lsr #8
  mov r5, r2, asr #16
  ldr r3, [sp, #60]
  ldr r2, [sp, #4]
  mov r4, r4, asl #8
  and r0, r0, #240
  cmp fp, #0
  str r4, [sp, #124]
  mov r1, r1, asr #16
  mov r4, r7, asl #8
  rsb ip, ip, r3
  add r7, r2, r6, asl #2
  str r0, [sp, #120]
  bne .L15795
  mla r3, ip, r1, r4
  mov r2, r3, asr #8
  cmp r2, r8
  bcs .L15754
  mov r3, lr, asl #22
  mov r1, r2, lsr #3
  mov r3, r3, lsr #22
  ldr r4, [sp, #136]
  add r3, r3, r1, asl #5
  and r2, r2, #7
  ldr r8, .L17801+24
  add r2, r2, r3, asl #3
  cmp r4, #0
  add lr, r8, r2, asl #2
  ble .L15754
  ldr r2, [sp, #72]
  mul r3, ip, r5
  mul r2, r9, r2
  ldr r0, [sp, #124]
  rsb r3, r2, r3
  add ip, r0, r3
  mov r3, ip, asr #8
  cmp r3, sl
  mov r1, r3
  movcs r4, fp
  bcs .L15801
  b .L17796
.L15802:
  cmp r3, sl
  bcc .L15803
.L15801:
  ldr r1, [sp, #72]
  ldr r2, [sp, #136]
  add ip, ip, r1
  add r4, r4, #1
  mov r3, ip, asr #8
  cmp r2, r4
  add r7, r7, #4
  mov r1, r3
  bne .L15802
  b .L15754
.L15795:
  mov r3, lr, asl #22
  ldr r0, .L17801+24
  ldr lr, [sp, #136]
  mov r3, r3, lsr #22
  add r3, r0, r3, asl #5
  cmp lr, #0
  str r3, [sp, #112]
  ble .L15754
  mov r3, fp, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #76]
  mul r2, ip, r1
  ldr r1, [sp, #76]
  ldr r0, [sp, #72]
  mul r1, r9, r1
  mul r3, ip, r5
  mul r0, r9, r0
  rsb r2, r1, r2
  ldr r1, [sp, #124]
  rsb r3, r0, r3
  add lr, r1, r3
  add r5, r4, r2
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  cmp ip, sl
  cmpcc r4, r8
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L15817
  b .L17797
.L15818:
  cmp ip, sl
  cmpcc r4, r8
  bcc .L15820
.L15817:
  ldr r2, [sp, #72]
  ldr r3, [sp, #76]
  ldr r0, [sp, #136]
  add r6, r6, #1
  add lr, lr, r2
  add r5, r5, r3
  cmp r0, r6
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  add r7, r7, #4
  bne .L15818
  b .L15754
.L17755:
  mov r3, ip, asr #1
  ldr r2, [sp, #112]
  and fp, r3, #3
  ldr r3, [sp, #112]
  and r1, r4, #7
  and r0, r4, #7
  add r1, r2, r1, asl #2
  add r0, r3, r0, asl #2
  mov r2, ip, asr #1
  mov r3, r4, asr #3
  and r9, r2, #3
  mov r3, r3, asl #10
  mov r2, ip, asr #3
  add r3, r3, r2, asl #5
  add r0, r0, r3
  tst ip, #1
  add r1, r1, r3
  ldrneb  r3, [r1, fp]  @ zero_extendqisi2
  ldreqb  r3, [r0, r9]  @ zero_extendqisi2
  movne r0, r3, lsr #4
  andeq r0, r3, #15
  ldr r4, [sp, #120]
  cmp r0, #0
  orr r0, r0, r4
  beq .L15826
  ldr r2, [r7, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r7, #0]
  streq r0, [r7, #0]
.L15826:
  ldr ip, [sp, #72]
  ldr r0, [sp, #76]
  ldr r1, [sp, #136]
  add r6, r6, #1
  add lr, lr, ip
  add r5, r5, r0
  cmp r1, r6
  add r7, r7, #4
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  ble .L15754
.L15820:
  cmp r4, r8
  cmpcc ip, sl
  bcc .L17755
  b .L15754
.L16961:
  mov r3, lr, asl #22
  ldr lr, .L17801+24
  mov r3, r3, lsr #22
  add r3, lr, r3, asl #5
  cmp fp, #0
  str r3, [sp, #104]
  ble .L15754
  ldr r0, [sp, #44]
  mul r2, ip, r1
  mov r3, r0, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #88]
  ldr r1, [sp, #88]
  ldr r0, [sp, #84]
  mul r1, r9, r1
  mul r3, ip, r5
  mul r0, r9, r0
  rsb r2, r1, r2
  ldr r1, [sp, #92]
  rsb r3, r0, r3
  add lr, r1, r3
  add r5, r4, r2
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  cmp ip, sl
  movcs r3, #0
  movcc r3, #1
  cmp r8, r4
  movls r3, #0
  cmp r3, #0
  moveq r6, r3
  beq .L16981
  b .L17798
.L16982:
  cmp ip, sl
  cmpcc r4, r8
  bcc .L16983
.L16981:
  ldr r2, [sp, #84]
  ldr r3, [sp, #88]
  add r6, r6, #1
  add lr, lr, r2
  add r5, r5, r3
  cmp fp, r6
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  add r7, r7, #4
  bne .L16982
  b .L15754
.L16938:
  cmp r4, sl
  bcs .L15754
.L17737:
  ldr r1, [sp, #80]
  mov r3, r4, asr #3
  add r0, r0, r1
  add r3, lr, r3, asl #6
  and r1, r4, #7
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  ldr r5, [sp, #52]
  cmp r2, #0
  add ip, ip, #1
  orr r3, r5, r2
  strne r3, [r7, #0]
  cmp r9, ip
  mov r4, r0, asr #8
  add r7, r7, #4
  bgt .L16938
  b .L15754
.L15758:
  mov r3, lr, asl #22
  ldr r2, .L17801+24
  mov r3, r3, lsr #22
  cmp r7, #0
  add lr, r2, r3, asl #5
  ble .L15754
  ldr r2, [sp, #16]
  mov r3, r2, asl #16
  mov r9, r3, asr #16
  mul r2, r0, r1
  mul r3, r0, r5
  mul r1, r9, ip
  mul r0, fp, ip
  ldr r5, [sp, #100]
  rsb r2, r1, r2
  rsb r3, r0, r3
  add r0, r5, r3
  add r5, r4, r2
  mov r1, r5, asr #8
  mov r4, r0, asr #8
  cmp r4, sl
  cmpcc r1, r8
  movcs r3, #0
  movcc r3, #1
  movcs ip, r3
  bcs .L15777
  b .L17799
.L15778:
  cmp r4, sl
  cmpcc r1, r8
  bcc .L15780
.L15777:
  add ip, ip, #1
  add r0, r0, fp
  add r5, r5, r9
  cmp r7, ip
  mov r4, r0, asr #8
  mov r1, r5, asr #8
  add r6, r6, #4
  bne .L15778
  b .L15754
.L17758:
  and r3, r1, #7
  mov r2, r4, asr #3
  mov r3, r3, asl #3
  add r3, r3, r2, asl #6
  mov r1, r1, asr #3
  add r3, r3, r1, asl #10
  and r2, r4, #7
  add r3, r3, lr
  ldrb  r4, [r3, r2]  @ zero_extendqisi2
  cmp r4, #0
  beq .L15783
  ldr r3, [r6, #0]
  mov r2, r3, lsr #16
  mov r2, r2, asl #16
  orr r1, r4, r3, asl #16
  orr r2, r2, #768
  tst r3, #256
  orr r2, r4, r2
  orr r1, r1, #768
  strne r2, [r6, #0]
  streq r1, [r6, #0]
.L15783:
  add ip, ip, #1
  add r0, r0, fp
  add r5, r5, r9
  cmp r7, ip
  mov r4, r0, asr #8
  mov r1, r5, asr #8
  add r6, r6, #4
  ble .L15754
.L15780:
  cmp r1, r8
  cmpcc r4, sl
  bcc .L17758
  b .L15754
.L16929:
  mov r3, lr, asl #22
  ldr lr, .L17801+24
  mov r3, r3, lsr #22
  add r3, lr, r3, asl #5
  cmp r9, #0
  str r3, [sp, #108]
  ble .L15754
  mov r3, fp, asl #16
  mul r2, r0, r1
  mov fp, r3, asr #16
  mul r3, r0, r5
  ldr r0, [sp, #80]
  mul r1, fp, ip
  mul r0, ip, r0
  rsb r3, r0, r3
  ldr r0, [sp, #132]
  rsb r2, r1, r2
  add r5, r0, r3
  add lr, r4, r2
  mov ip, r5, asr #8
  mov r4, lr, asr #8
  cmp ip, sl
  cmpcc r4, r8
  movcs r3, #0
  movcc r3, #1
  movcs r6, r3
  bcs .L16945
  b .L17800
.L16946:
  cmp ip, sl
  cmpcc r4, r8
  bcc .L16948
.L16945:
  ldr r1, [sp, #80]
  add r6, r6, #1
  add r5, r5, r1
  add lr, lr, fp
  cmp r9, r6
  mov ip, r5, asr #8
  mov r4, lr, asr #8
  add r7, r7, #4
  bne .L16946
  b .L15754
.L17760:
  ldr r2, [sp, #80]
  and r3, r4, #7
  add r5, r5, r2
  mov r3, r3, asl #3
  mov r2, ip, asr #3
  mov r1, r4, asr #3
  add r3, r3, r2, asl #6
  add r3, r3, r1, asl #10
  ldr r1, [sp, #108]
  and r0, ip, #7
  add r3, r3, r1
  ldrb  r2, [r3, r0]  @ zero_extendqisi2
  ldr r0, [sp, #52]
  cmp r2, #0
  add r6, r6, #1
  orr r3, r0, r2
  strne r3, [r7, #0]
  add lr, lr, fp
  cmp r9, r6
  mov r4, lr, asr #8
  mov ip, r5, asr #8
  add r7, r7, #4
  ble .L15754
.L16948:
  cmp r4, r8
  cmpcc ip, sl
  bcc .L17760
  b .L15754
.L16994:
  mov r3, lr, asl #22
  mov r2, r0, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r0, #7
  add r1, r1, r3, asl #3
  ldr r3, [sp, #12]
  ldr r4, .L17801+24
  cmp r6, r3
  mov r3, lr, lsr #8
  and r7, r3, #240
  add r0, r4, r1, asl #2
  bge .L16999
  ldr r5, [sp, #12]
  rsb r4, r6, r5
  rsb lr, r4, sl
  cmp lr, #0
  ble .L15754
  ldr r8, [sp, #8]
  add r3, r6, sl
  cmp r8, r3
  bhi .L17002
  mov r3, r4, lsr #3
  mov r1, r3, asl #5
  ands  r3, r4, #7
  add r4, r0, r1
  bne .L17004
  ldr r5, [sp, #128]
  ldr r6, [sp, #96]
.L17006:
  movs  lr, r5, lsr #3
  beq .L17023
  mov r1, r6
  mov r0, r4
  mov ip, #0
.L17025:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L17026
  ands  r3, r2, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #28
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r1, #28]
.L17026:
  add ip, ip, #1
  cmp ip, lr
  add r0, r0, #32
  add r1, r1, #32
  bne .L17025
  mov r3, lr, asl #5
  add r4, r4, r3
  add r6, r6, r3
.L17023:
  ands  r0, r5, #7
  beq .L15754
  ldr r2, [r4, #0]
  mov r1, #0
.L17045:
  ldr r4, [sp, #52]
  ands  r3, r2, #15
  orr r3, r4, r3
  orr r3, r7, r3
  strne r3, [r6, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, lsr #4
  bne .L17045
  b .L15754
.L16995:
  mov r3, lr, asl #22
  mov r1, r0, lsr #3
  subs  r2, sl, #8
  mov r3, r3, lsr #22
  submi r2, sl, #1
  add r3, r3, r1, asl #5
  ldr r5, [sp, #12]
  add r3, r3, r2, asr #3
  and r1, r0, #7
  ldr r8, .L17801+24
  add r1, r1, r3, asl #3
  cmp r6, r5
  mov r3, lr, lsr #8
  and r7, r3, #240
  add r0, r8, r1, asl #2
  bge .L17129
  rsb r4, r6, r5
  rsb r1, r4, sl
  cmp r1, #0
  ble .L15754
  ldr ip, [sp, #8]
  add r3, r6, sl
  cmp ip, r3
  bhi .L17132
  mov r3, r4, lsr #3
  ands  r5, r4, #7
  sub r0, r0, r3, asl #5
  bne .L17134
  ldr r2, [sp, #128]
  ldr r1, [sp, #96]
.L17136:
  movs  r8, r2, lsr #3
  beq .L17153
  mov r5, r1
  mov r6, r0
  mov lr, #0
.L17155:
  ldr r4, [r6, #0]
  cmp r4, #0
  beq .L17156
  ands  r3, r4, #15
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  orrne r3, r7, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  orrne r3, r7, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  orrne r3, r7, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  orrne r3, r7, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  orrne r3, r7, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  orrne r3, r7, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  orrne r3, r7, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  orrne r3, r7, r3
  strne r3, [r5, #0]
.L17156:
  add lr, lr, #1
  cmp lr, r8
  sub r6, r6, #32
  add r5, r5, #32
  bne .L17155
  rsb r3, r8, r8, asl #27
  add r0, r0, r3, asl #5
  add r1, r1, r8, asl #5
.L17153:
  ands  lr, r2, #7
  beq .L15754
  ldr r0, [r0, #0]
  mov r2, #0
.L17175:
  ldr r5, [sp, #52]
  movs  r3, r0, lsr #28
  orr r3, r5, r3
  orr r3, r7, r3
  strne r3, [r1, r2, asl #2]
  add r2, r2, #1
  cmp r2, lr
  mov r0, r0, asl #4
  bne .L17175
  b .L15754
.L17802:
  .align  2
.L17801:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word oam_ram
  .word obj_height_table
  .word obj_width_table
  .word vram+65536
.L16996:
  mov r3, lr, asl #22
  mov r1, r0, lsr #3
  mov r3, r3, lsr #22
  and r2, r0, #7
  add r3, r3, r1, asl #5
  ldr r5, [sp, #12]
  add r2, r2, r3, asl #2
  ldr r7, .L17801+24
  mov r0, r2, asl #3
  cmp r6, r5
  add ip, r0, r7
  bge .L17259
  rsb r0, r6, r5
  rsb lr, r0, sl
  cmp lr, #0
  ble .L15754
  ldr r8, [sp, #8]
  add r3, r6, sl
  cmp r8, r3
  bhi .L17262
  mov r3, r0, lsr #3
  ands  lr, r0, #7
  add r6, ip, r3, asl #6
  bne .L17264
  ldr r5, [sp, #128]
  ldr r4, [sp, #96]
.L17266:
  movs  lr, r5, lsr #3
  beq .L17324
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L17326:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L17327
  ands  r3, r2, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #12]
.L17327:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L17336
  ands  r3, r2, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #28]
.L17336:
  add ip, ip, #1
  cmp lr, ip
  add r0, r0, #64
  add r1, r1, #32
  bne .L17326
  add r6, r6, lr, asl #6
  add r4, r4, lr, asl #5
.L17324:
  ands  r0, r5, #7
  beq .L15754
  cmp r0, #3
  ldrls r1, [r6, #0]
  bls .L17359
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L17349
  ands  r3, r2, #255
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  strne r3, [r4, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  strne r3, [r4, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #52]
  orrne r3, r1, r3
  strne r3, [r4, #8]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  strne r3, [r4, #12]
.L17349:
  subs  r0, r0, #4
  ldr r1, [r6, #4]
  addne r4, r4, #16
  beq .L15754
.L17359:
  mov r2, #0
.L17360:
  ldr r5, [sp, #52]
  ands  r3, r1, #255
  orr r3, r5, r3
  strne r3, [r4, r2, asl #2]
  add r2, r2, #1
  cmp r0, r2
  mov r1, r1, lsr #8
  bhi .L17360
  b .L15754
.L15834:
  mov r3, lr, asl #22
  mov r1, r0, lsr #3
  mov r3, r3, lsr #22
  and r2, r0, #7
  add r3, r3, r1, asl #5
  ldr r4, [sp, #12]
  add r2, r2, r3, asl #2
  ldr r5, .L17801+24
  mov r0, r2, asl #3
  cmp r6, r4
  add ip, r0, r5
  bge .L16245
  rsb r0, r6, r4
  rsb r7, r0, sl
  cmp r7, #0
  ble .L15754
  ldr r8, [sp, #8]
  add r3, r6, sl
  cmp r8, r3
  bhi .L16248
  mov r3, r0, lsr #3
  ands  lr, r0, #7
  add r7, ip, r3, asl #6
  bne .L16250
  ldr r6, [sp, #128]
  ldr lr, [sp, #96]
.L16252:
  movs  r5, r6, lsr #3
  beq .L16330
  mov r0, lr
  mov ip, r7
  mov r4, #0
.L16332:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L16333
  ands  r1, r2, #255
  beq .L16335
  ldr r3, [r0, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L16335:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L16339
  ldr r3, [r0, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L16339:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L16343
  ldr r3, [r0, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L16343:
  movs  r2, r2, lsr #24
  beq .L16333
  ldr r1, [r0, #12]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L16333:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L16350
  ands  r1, r2, #255
  beq .L16352
  ldr r3, [r0, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L16352:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L16356
  ldr r3, [r0, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L16356:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L16360
  ldr r3, [r0, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L16360:
  movs  r2, r2, lsr #24
  beq .L16350
  ldr r3, [r0, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L16350:
  add r4, r4, #1
  cmp r4, r5
  add ip, ip, #64
  add r0, r0, #32
  bne .L16332
  add r7, r7, r5, asl #6
  add lr, lr, r5, asl #5
.L16330:
  ands  r5, r6, #7
  beq .L15754
  cmp r5, #3
  ldrls ip, [r7, #0]
  bls .L16389
  ldr r2, [r7, #0]
  cmp r2, #0
  beq .L16371
  ands  r1, r2, #255
  beq .L16373
  ldr r3, [lr, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [lr, #0]
  streq r3, [lr, #0]
.L16373:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L16377
  ldr r3, [lr, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [lr, #4]
  streq r3, [lr, #4]
.L16377:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L16381
  ldr r3, [lr, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [lr, #8]
  streq r3, [lr, #8]
.L16381:
  movs  r2, r2, lsr #24
  beq .L16371
  ldr r1, [lr, #12]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [lr, #12]
  streq r3, [lr, #12]
.L16371:
  subs  r5, r5, #4
  ldr ip, [r7, #4]
  addne lr, lr, #16
  beq .L15754
.L16389:
  mov r4, #0
.L16390:
  ands  r0, ip, #255
  beq .L16391
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16391:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bhi .L16390
  b .L15754
.L15832:
  mov r3, lr, asl #22
  mov r2, r0, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r0, #7
  add r1, r1, r3, asl #3
  ldr r3, [sp, #12]
  ldr r4, .L17801+24
  cmp r6, r3
  mov r3, lr, lsr #8
  and r7, r3, #240
  add r0, r4, r1, asl #2
  bge .L15837
  ldr r5, [sp, #12]
  rsb r4, r6, r5
  rsb r8, r4, sl
  cmp r8, #0
  ble .L15754
  ldr ip, [sp, #8]
  add r3, r6, sl
  cmp ip, r3
  bhi .L15840
  mov r3, r4, lsr #3
  mov r1, r3, asl #5
  ands  r3, r4, #7
  add r8, r0, r1
  bne .L15842
  ldr sl, [sp, #128]
  ldr r5, [sp, #96]
.L15844:
  movs  r6, sl, lsr #3
  beq .L15865
  mov ip, r5
  mov lr, r8
  mov r4, #0
.L15867:
  ldr r0, [lr, #0]
  cmp r0, #0
  beq .L15868
  ands  r2, r0, #15
  beq .L15870
  ldr r1, [ip, #0]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #0]
  streq r3, [ip, #0]
.L15870:
  mov r3, r0, lsr #4
  ands  r2, r3, #15
  beq .L15874
  ldr r1, [ip, #4]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #4]
  streq r3, [ip, #4]
.L15874:
  mov r3, r0, lsr #8
  ands  r2, r3, #15
  beq .L15878
  ldr r1, [ip, #8]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #8]
  streq r3, [ip, #8]
.L15878:
  mov r3, r0, lsr #12
  ands  r2, r3, #15
  beq .L15882
  ldr r1, [ip, #12]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #12]
  streq r3, [ip, #12]
.L15882:
  mov r3, r0, lsr #16
  ands  r2, r3, #15
  beq .L15886
  ldr r1, [ip, #16]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #16]
  streq r3, [ip, #16]
.L15886:
  mov r3, r0, lsr #20
  ands  r2, r3, #15
  beq .L15890
  ldr r1, [ip, #20]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #20]
  streq r3, [ip, #20]
.L15890:
  mov r3, r0, lsr #24
  ands  r2, r3, #15
  beq .L15894
  ldr r1, [ip, #24]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #24]
  streq r3, [ip, #24]
.L15894:
  movs  r2, r0, lsr #28
  beq .L15868
  ldr r1, [ip, #28]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #28]
  streq r3, [ip, #28]
.L15868:
  add r4, r4, #1
  cmp r6, r4
  add lr, lr, #32
  add ip, ip, #32
  bne .L15867
  mov r3, r6, asl #5
  add r8, r8, r3
  add r5, r5, r3
.L15865:
  ands  lr, sl, #7
  beq .L15754
  ldr ip, [r8, #0]
  mov r4, #0
.L15903:
  ands  r3, ip, #15
  beq .L15904
  ldr r1, [r5, #0]
  orr r2, r7, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r5, #0]
  streq r2, [r5, #0]
.L15904:
  add r4, r4, #1
  cmp lr, r4
  mov ip, ip, lsr #4
  add r5, r5, #4
  bne .L15903
  b .L15754
.L15835:
  subs  r2, sl, #8
  submi r2, sl, #1
  mov r3, r0, lsr #3
  mov r2, r2, asr #3
  mov r1, lr, asl #22
  add r2, r2, r3, asl #4
  mov r1, r1, lsr #22
  and r3, r0, #7
  add r1, r1, r2, asl #1
  add r3, r3, r1, asl #2
  mov r0, r3, asl #3
  ldr r3, [sp, #12]
  ldr r4, .L17801+24
  cmp r6, r3
  add ip, r0, r4
  bge .L16581
  rsb r0, r6, r3
  rsb r7, r0, sl
  cmp r7, #0
  ble .L15754
  ldr r5, [sp, #8]
  add r3, r6, sl
  cmp r5, r3
  bhi .L16584
  mov r3, r0, lsr #3
  ands  lr, r0, #7
  sub r8, ip, r3, asl #6
  bne .L16586
  ldr r7, [sp, #128]
  ldr r5, [sp, #96]
.L16588:
  movs  r6, r7, lsr #3
  beq .L16666
  mov ip, r5
  mov lr, r8
  mov r4, #0
.L16668:
  ldr r2, [lr, #4]
  cmp r2, #0
  beq .L16669
  ands  r1, r2, #255
  beq .L16671
  ldr r3, [ip, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #12]
  streq r3, [ip, #12]
.L16671:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L16675
  ldr r3, [ip, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #8]
  streq r3, [ip, #8]
.L16675:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L16679
  ldr r3, [ip, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #4]
  streq r3, [ip, #4]
.L16679:
  movs  r2, r2, lsr #24
  beq .L16669
  ldr r3, [ip, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #0]
  streq r3, [ip, #0]
.L16669:
  ldr r1, [lr, #0]
  cmp r1, #0
  beq .L16686
  ands  r2, r1, #255
  beq .L16688
  ldr r0, [ip, #28]
  tst r0, #256
  movne r3, r0, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r0, asl #16
  strne r3, [ip, #28]
  streq r3, [ip, #28]
.L16688:
  mov r3, r1, lsr #8
  ands  r2, r3, #255
  beq .L16692
  ldr r3, [ip, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #24]
  streq r3, [ip, #24]
.L16692:
  mov r3, r1, lsr #16
  ands  r2, r3, #255
  beq .L16696
  ldr r3, [ip, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #20]
  streq r3, [ip, #20]
.L16696:
  movs  r2, r1, lsr #24
  beq .L16686
  ldr r1, [ip, #16]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #16]
  streq r3, [ip, #16]
.L16686:
  add r4, r4, #1
  cmp r6, r4
  sub lr, lr, #64
  add ip, ip, #32
  bne .L16668
  rsb r3, r6, r6, asl #26
  add r8, r8, r3, asl #6
  add r5, r5, r6, asl #5
.L16666:
  ands  lr, r7, #7
  beq .L15754
  cmp lr, #3
  ldrls ip, [r8, #4]
  bls .L16725
  ldr r2, [r8, #4]
  cmp r2, #0
  beq .L16707
  ands  r1, r2, #255
  beq .L16709
  ldr r3, [r5, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r5, #12]
  streq r3, [r5, #12]
.L16709:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L16713
  ldr r3, [r5, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r5, #8]
  streq r3, [r5, #8]
.L16713:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L16717
  ldr r3, [r5, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r5, #4]
  streq r3, [r5, #4]
.L16717:
  movs  r2, r2, lsr #24
  beq .L16707
  ldr r3, [r5, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r5, #0]
  streq r3, [r5, #0]
.L16707:
  subs  lr, lr, #4
  ldr ip, [r8, #0]
  addne r5, r5, #16
  beq .L15754
.L16725:
  mov r4, #0
.L16726:
  movs  r0, ip, lsr #24
  beq .L16727
  ldr r2, [r5, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r5, #0]
  streq r0, [r5, #0]
.L16727:
  add r4, r4, #1
  cmp r4, lr
  mov ip, ip, asl #8
  add r5, r5, #4
  bcc .L16726
  b .L15754
.L16997:
  subs  r2, sl, #8
  submi r2, sl, #1
  mov r3, r0, lsr #3
  mov r2, r2, asr #3
  mov r1, lr, asl #22
  add r2, r2, r3, asl #4
  mov r1, r1, lsr #22
  add r1, r1, r2, asl #1
  and r3, r0, #7
  ldr r5, [sp, #12]
  add r3, r3, r1, asl #2
  ldr r7, .L17801+24
  mov r0, r3, asl #3
  cmp r6, r5
  add r2, r0, r7
  bge .L17479
  rsb r0, r6, r5
  rsb lr, r0, sl
  cmp lr, #0
  ble .L15754
  ldr r8, [sp, #8]
  add r3, r6, sl
  cmp r8, r3
  bhi .L17482
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub r6, r2, r3, asl #6
  bne .L17484
  ldr r5, [sp, #128]
  ldr r4, [sp, #96]
.L17486:
  movs  lr, r5, lsr #3
  beq .L17544
  mov r1, r4
  mov r0, r6
  mov ip, #0
.L17546:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L17547
  ands  r3, r2, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #4]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #0]
.L17547:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L17556
  ands  r3, r2, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #28]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #24]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #20]
  movs  r3, r2, lsr #24
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #16]
.L17556:
  add ip, ip, #1
  cmp ip, lr
  sub r0, r0, #64
  add r1, r1, #32
  bne .L17546
  rsb r3, lr, lr, asl #26
  add r6, r6, r3, asl #6
  add r4, r4, lr, asl #5
.L17544:
  ands  r0, r5, #7
  beq .L15754
  cmp r0, #3
  ldrls r2, [r6, #4]
  bls .L17579
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L17569
  ands  r3, r2, #255
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  strne r3, [r4, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  strne r3, [r4, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r1, [sp, #52]
  orrne r3, r1, r3
  strne r3, [r4, #4]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  strne r3, [r4, #0]
.L17569:
  subs  r0, r0, #4
  ldr r2, [r6, #0]
  addne r4, r4, #16
  beq .L15754
.L17579:
  mov r1, #0
.L17580:
  ldr r5, [sp, #52]
  movs  r3, r2, lsr #24
  orr r3, r5, r3
  strne r3, [r4, r1, asl #2]
  add r1, r1, #1
  cmp r0, r1
  mov r2, r2, asl #8
  bhi .L17580
  b .L15754
.L15833:
  mov r3, lr, asl #22
  mov r1, r0, lsr #3
  subs  r2, sl, #8
  mov r3, r3, lsr #22
  submi r2, sl, #1
  add r3, r3, r1, asl #5
  add r3, r3, r2, asr #3
  and r1, r0, #7
  ldr ip, [sp, #12]
  add r1, r1, r3, asl #3
  mov r3, lr, lsr #8
  ldr lr, .L17801+24
  cmp r6, ip
  and r7, r3, #240
  add r0, lr, r1, asl #2
  bge .L16041
  rsb r4, r6, ip
  rsb lr, r4, sl
  cmp lr, #0
  ble .L15754
  ldr r1, [sp, #8]
  add r3, r6, sl
  cmp r1, r3
  bhi .L16044
  mov r3, r4, lsr #3
  ands  lr, r4, #7
  sub ip, r0, r3, asl #5
  bne .L16046
  ldr sl, [sp, #128]
  ldr r5, [sp, #96]
.L16048:
  movs  r8, sl, lsr #3
  beq .L16069
  mov r4, r5
  mov lr, ip
  mov r6, #0
.L16071:
  ldr r0, [lr, #0]
  cmp r0, #0
  beq .L16072
  ands  r2, r0, #15
  beq .L16074
  ldr r1, [r4, #28]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #28]
  streq r3, [r4, #28]
.L16074:
  mov r3, r0, lsr #4
  ands  r2, r3, #15
  beq .L16078
  ldr r1, [r4, #24]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #24]
  streq r3, [r4, #24]
.L16078:
  mov r3, r0, lsr #8
  ands  r2, r3, #15
  beq .L16082
  ldr r1, [r4, #20]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #20]
  streq r3, [r4, #20]
.L16082:
  mov r3, r0, lsr #12
  ands  r2, r3, #15
  beq .L16086
  ldr r1, [r4, #16]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #16]
  streq r3, [r4, #16]
.L16086:
  mov r3, r0, lsr #16
  ands  r2, r3, #15
  beq .L16090
  ldr r1, [r4, #12]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L16090:
  mov r3, r0, lsr #20
  ands  r2, r3, #15
  beq .L16094
  ldr r1, [r4, #8]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L16094:
  mov r3, r0, lsr #24
  ands  r2, r3, #15
  beq .L16098
  ldr r1, [r4, #4]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L16098:
  movs  r2, r0, lsr #28
  beq .L16072
  ldr r1, [r4, #0]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L16072:
  add r6, r6, #1
  cmp r8, r6
  sub lr, lr, #32
  add r4, r4, #32
  bne .L16071
  rsb r3, r8, r8, asl #27
  add ip, ip, r3, asl #5
  add r5, r5, r8, asl #5
.L16069:
  ands  lr, sl, #7
  beq .L15754
  ldr ip, [ip, #0]
  mov r4, #0
.L16107:
  movs  r3, ip, lsr #28
  beq .L16108
  ldr r1, [r5, #0]
  orr r2, r7, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r5, #0]
  streq r2, [r5, #0]
.L16108:
  add r4, r4, #1
  cmp r4, lr
  mov ip, ip, asl #4
  add r5, r5, #4
  bne .L16107
  b .L15754
.L16041:
  ldr r1, [sp, #8]
  add r3, r6, sl
  cmp r1, r3
  bls .L17761
  cmp sl, #0
  add r3, sl, #7
  movge r3, sl
  movs  lr, r3, asr #3
  beq .L15754
  ldr r3, [sp, #4]
  mov ip, #0
  add r1, r3, r6, asl #2
  b .L16210
.L17762:
  sub r0, r0, #32
  add r1, r1, #32
.L16210:
  ldr r5, [r0, #0]
  cmp r5, #0
  beq .L16211
  ands  r2, r5, #15
  beq .L16213
  ldr r4, [r1, #28]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L16213:
  mov r3, r5, lsr #4
  ands  r2, r3, #15
  beq .L16217
  ldr r4, [r1, #24]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L16217:
  mov r3, r5, lsr #8
  ands  r2, r3, #15
  beq .L16221
  ldr r4, [r1, #20]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L16221:
  mov r3, r5, lsr #12
  ands  r2, r3, #15
  beq .L16225
  ldr r4, [r1, #16]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L16225:
  mov r3, r5, lsr #16
  ands  r2, r3, #15
  beq .L16229
  ldr r4, [r1, #12]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L16229:
  mov r3, r5, lsr #20
  ands  r2, r3, #15
  beq .L16233
  ldr r4, [r1, #8]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L16233:
  mov r3, r5, lsr #24
  ands  r2, r3, #15
  beq .L16237
  ldr r4, [r1, #4]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L16237:
  movs  r2, r5, lsr #28
  beq .L16211
  ldr r4, [r1, #0]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L16211:
  add ip, ip, #1
  cmp lr, ip
  bne .L17762
  b .L15754
.L16999:
  ldr ip, [sp, #8]
  add r3, r6, sl
  cmp ip, r3
  bls .L17763
  cmp sl, #0
  add r3, sl, #7
  movge r3, sl
  movs  ip, r3, asr #3
  beq .L15754
  ldr r8, [sp, #4]
  mov r2, #0
  add r1, r8, r6, asl #2
  b .L17110
.L17764:
  add r0, r0, #32
  add r1, r1, #32
.L17110:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L17111
  ands  r3, r4, #15
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  orrne r3, r7, r3
  strne r3, [r1, #0]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  orrne r3, r7, r3
  strne r3, [r1, #4]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #8]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  orrne r3, r7, r3
  strne r3, [r1, #12]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  orrne r3, r7, r3
  strne r3, [r1, #16]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #20]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  orrne r3, r7, r3
  strne r3, [r1, #24]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  orrne r3, r7, r3
  strne r3, [r1, #28]
.L17111:
  add r2, r2, #1
  cmp ip, r2
  bne .L17764
  b .L15754
.L17259:
  ldr r8, [sp, #8]
  add r3, r6, sl
  cmp r8, r3
  bls .L17765
  cmp sl, #0
  add r3, sl, #7
  movge r3, sl
  movs  lr, r3, asr #3
  beq .L15754
  ldr r3, [sp, #4]
  mov r2, #0
  add r1, r3, r6, asl #2
  ldr r3, .L17803+4
  add r0, r0, r3
  b .L17459
.L17766:
  add ip, ip, #64
  add r1, r1, #32
.L17459:
  ldr r4, [ip, #0]
  cmp r4, #0
  beq .L17460
  ands  r3, r4, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r1, #0]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #4]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #8]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r1, #12]
.L17460:
  ldr r4, [r0, #-60]
  cmp r4, #0
  beq .L17469
  ands  r3, r4, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r1, #16]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #20]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #24]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r1, #28]
.L17469:
  add r2, r2, #1
  cmp lr, r2
  add r0, r0, #64
  bne .L17766
  b .L15754
.L15837:
  ldr r4, [sp, #8]
  add r3, r6, sl
  cmp r4, r3
  bls .L17767
  cmp sl, #0
  add r3, sl, #7
  movge r3, sl
  movs  lr, r3, asr #3
  beq .L15754
  ldr r8, [sp, #4]
  mov ip, #0
  add r1, r8, r6, asl #2
  b .L16006
.L17768:
  add r0, r0, #32
  add r1, r1, #32
.L16006:
  ldr r5, [r0, #0]
  cmp r5, #0
  beq .L16007
  ands  r2, r5, #15
  beq .L16009
  ldr r4, [r1, #0]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L16009:
  mov r3, r5, lsr #4
  ands  r2, r3, #15
  beq .L16013
  ldr r4, [r1, #4]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L16013:
  mov r3, r5, lsr #8
  ands  r2, r3, #15
  beq .L16017
  ldr r4, [r1, #8]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L16017:
  mov r3, r5, lsr #12
  ands  r2, r3, #15
  beq .L16021
  ldr r4, [r1, #12]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L16021:
  mov r3, r5, lsr #16
  ands  r2, r3, #15
  beq .L16025
  ldr r4, [r1, #16]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L16025:
  mov r3, r5, lsr #20
  ands  r2, r3, #15
  beq .L16029
  ldr r4, [r1, #20]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L16029:
  mov r3, r5, lsr #24
  ands  r2, r3, #15
  beq .L16033
  ldr r4, [r1, #24]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L16033:
  movs  r2, r5, lsr #28
  beq .L16007
  ldr r4, [r1, #28]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L16007:
  add ip, ip, #1
  cmp lr, ip
  bne .L17768
  b .L15754
.L17129:
  ldr lr, [sp, #8]
  add r3, r6, sl
  cmp lr, r3
  bls .L17769
  cmp sl, #0
  add r3, sl, #7
  movge r3, sl
  movs  ip, r3, asr #3
  beq .L15754
  ldr r8, [sp, #4]
  mov r2, #0
  add r1, r8, r6, asl #2
  b .L17240
.L17770:
  sub r0, r0, #32
  add r1, r1, #32
.L17240:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L17241
  ands  r3, r4, #15
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  orrne r3, r7, r3
  strne r3, [r1, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  orrne r3, r7, r3
  strne r3, [r1, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  orrne r3, r7, r3
  strne r3, [r1, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  orrne r3, r7, r3
  strne r3, [r1, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  orrne r3, r7, r3
  strne r3, [r1, #4]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  orrne r3, r7, r3
  strne r3, [r1, #0]
.L17241:
  add r2, r2, #1
  cmp ip, r2
  bne .L17770
  b .L15754
.L16581:
  ldr r2, [sp, #8]
  add r3, r6, sl
  cmp r2, r3
  bls .L17771
  cmp sl, #0
  add r3, sl, #7
  movge r3, sl
  movs  r7, r3, asr #3
  beq .L15754
  ldr r4, [sp, #4]
  ldr r3, .L17803
  add r1, r4, r6, asl #2
  add r0, r0, r3
  mov lr, #0
  b .L16881
.L17772:
  sub ip, ip, #64
  add r1, r1, #32
.L16881:
  ldr r2, [r0, #68]
  cmp r2, #0
  beq .L16882
  ands  r4, r2, #255
  beq .L16884
  ldr r3, [r1, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L16884:
  mov r3, r2, lsr #8
  ands  r4, r3, #255
  beq .L16888
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L16888:
  mov r3, r2, lsr #16
  ands  r4, r3, #255
  beq .L16892
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L16892:
  movs  r2, r2, lsr #24
  beq .L16882
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L16882:
  ldr r4, [ip, #0]
  cmp r4, #0
  beq .L16899
  ands  r2, r4, #255
  beq .L16901
  ldr r5, [r1, #28]
  tst r5, #256
  movne r3, r5, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r5, asl #16
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L16901:
  mov r3, r4, lsr #8
  ands  r2, r3, #255
  beq .L16905
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L16905:
  mov r3, r4, lsr #16
  ands  r2, r3, #255
  beq .L16909
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L16909:
  movs  r2, r4, lsr #24
  beq .L16899
  ldr r4, [r1, #16]
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L16899:
  add lr, lr, #1
  cmp r7, lr
  sub r0, r0, #64
  bne .L17772
  b .L15754
.L16245:
  ldr r7, [sp, #8]
  add r3, r6, sl
  cmp r7, r3
  bls .L17773
  cmp sl, #0
  add r3, sl, #7
  movge r3, sl
  movs  r5, r3, asr #3
  beq .L15754
  ldr r2, [sp, #4]
  ldr r3, .L17803+4
  add r1, r2, r6, asl #2
  add r0, r0, r3
  mov lr, #0
  b .L16545
.L17774:
  add ip, ip, #64
  add r1, r1, #32
.L16545:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L16546
  ands  r4, r2, #255
  beq .L16548
  ldr r3, [r1, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r1, #0]
  streq r3, [r1, #0]
.L16548:
  mov r3, r2, lsr #8
  ands  r4, r3, #255
  beq .L16552
  ldr r3, [r1, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r1, #4]
  streq r3, [r1, #4]
.L16552:
  mov r3, r2, lsr #16
  ands  r4, r3, #255
  beq .L16556
  ldr r3, [r1, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r1, #8]
  streq r3, [r1, #8]
.L16556:
  movs  r2, r2, lsr #24
  beq .L16546
  ldr r4, [r1, #12]
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r1, #12]
  streq r3, [r1, #12]
.L16546:
  ldr r2, [r0, #-60]
  cmp r2, #0
  beq .L16563
  ands  r4, r2, #255
  beq .L16565
  ldr r3, [r1, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r1, #16]
  streq r3, [r1, #16]
.L16565:
  mov r3, r2, lsr #8
  ands  r4, r3, #255
  beq .L16569
  ldr r3, [r1, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r1, #20]
  streq r3, [r1, #20]
.L16569:
  mov r3, r2, lsr #16
  ands  r4, r3, #255
  beq .L16573
  ldr r3, [r1, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r1, #24]
  streq r3, [r1, #24]
.L16573:
  movs  r2, r2, lsr #24
  beq .L16563
  ldr r3, [r1, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r1, #28]
  streq r3, [r1, #28]
.L16563:
  add lr, lr, #1
  cmp r5, lr
  add r0, r0, #64
  bne .L17774
  b .L15754
.L17479:
  ldr r8, [sp, #8]
  add r3, r6, sl
  cmp r3, r8
  bcs .L17775
  cmp sl, #0
  add r3, sl, #7
  movge r3, sl
  movs  lr, r3, asr #3
  beq .L15754
  ldr r5, [sp, #4]
  ldr r3, .L17803
  add r1, r5, r6, asl #2
  add r0, r0, r3
  mov ip, #0
  b .L17679
.L17776:
  sub r2, r2, #64
  add r1, r1, #32
.L17679:
  ldr r4, [r0, #68]
  cmp r4, #0
  beq .L17680
  ands  r3, r4, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #12]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #8]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r1, #4]
  movs  r3, r4, lsr #24
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #0]
.L17680:
  ldr r4, [r2, #0]
  cmp r4, #0
  beq .L17689
  ands  r3, r4, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #28]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r1, #24]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #20]
  movs  r3, r4, lsr #24
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #16]
.L17689:
  add ip, ip, #1
  cmp lr, ip
  sub r0, r0, #64
  bne .L17776
  b .L15754
.L17798:
  mov r6, #0
.L16983:
  cmp r8, r4
  cmphi sl, ip
  bhi .L17740
  b .L15754
.L16984:
  cmp r4, r8
  cmpcc ip, sl
  bcs .L15754
.L17740:
  mov r3, ip, asr #1
  ldr r1, [sp, #104]
  and r3, r3, #3
  and r0, r4, #7
  str r3, [sp, #0]
  ldr r3, [sp, #104]
  add r0, r1, r0, asl #2
  and r1, r4, #7
  mov r2, ip, asr #1
  add r1, r3, r1, asl #2
  mov r3, r4, asr #3
  and r9, r2, #3
  mov r3, r3, asl #10
  mov r2, ip, asr #3
  tst ip, #1
  add r3, r3, r2, asl #5
  add r2, r0, r3
  movne r4, r9
  add r0, r1, r3
  ldreqb  r3, [r0, r9]  @ zero_extendqisi2
  ldrneb  r3, [r2, r4]  @ zero_extendqisi2
  ldr r2, [sp, #52]
  movne r0, r3, lsr #4
  andeq r0, r3, #15
  cmp r0, #0
  orr r3, r0, r2
  ldr r0, [sp, #116]
  ldr ip, [sp, #84]
  ldr r1, [sp, #88]
  add r6, r6, #1
  orr r3, r0, r3
  strne r3, [r7, #0]
  add lr, lr, ip
  add r5, r5, r1
  cmp fp, r6
  mov ip, lr, asr #8
  mov r4, r5, asr #8
  add r7, r7, #4
  bgt .L16984
  b .L15754
.L17775:
  rsb r7, r6, r8
  cmp r7, #0
  ble .L15754
  ldr ip, [sp, #4]
  movs  lr, r7, lsr #3
  add r1, ip, r6, asl #2
  beq .L17638
  ldr r3, .L17803
  mov r5, r1
  add r0, r0, r3
  mov r6, r2
  mov ip, #0
.L17640:
  ldr r4, [r0, #68]
  cmp r4, #0
  beq .L17641
  ands  r3, r4, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r5, #0]
.L17641:
  ldr r4, [r6, #0]
  cmp r4, #0
  beq .L17650
  ands  r3, r4, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r5, #20]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r5, #16]
.L17650:
  add ip, ip, #1
  cmp lr, ip
  sub r6, r6, #64
  add r5, r5, #32
  sub r0, r0, #64
  bne .L17640
  rsb r3, lr, lr, asl #26
  add r2, r2, r3, asl #6
  add r1, r1, lr, asl #5
.L17638:
  ands  ip, r7, #7
  beq .L15754
  cmp ip, #3
  ldrls r2, [r2, #4]
  bls .L17673
  ldr r0, [r2, #4]
  cmp r0, #0
  beq .L17663
  ands  r3, r0, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r1, #12]
  mov r3, r0, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #8]
  mov r3, r0, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #4]
  movs  r3, r0, lsr #24
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  strne r3, [r1, #0]
.L17663:
  subs  ip, ip, #4
  ldr r2, [r2, #0]
  addne r1, r1, #16
  beq .L15754
.L17673:
  mov r0, #0
.L17674:
  ldr r4, [sp, #52]
  movs  r3, r2, lsr #24
  orr r3, r4, r3
  strne r3, [r1, r0, asl #2]
  add r0, r0, #1
  cmp ip, r0
  mov r2, r2, asl #8
  bhi .L17674
  b .L15754
.L17767:
  rsb ip, r6, r4
  cmp ip, #0
  ble .L15754
  ldr r5, [sp, #4]
  movs  sl, ip, lsr #3
  add r8, r5, r6, asl #2
  beq .L15961
  mov r6, r8
  mov lr, r0
  mov r1, #0
.L15963:
  ldr r5, [lr, #0]
  cmp r5, #0
  beq .L15964
  ands  r2, r5, #15
  beq .L15966
  ldr r4, [r6, #0]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #0]
  streq r3, [r6, #0]
.L15966:
  mov r3, r5, lsr #4
  ands  r2, r3, #15
  beq .L15970
  ldr r4, [r6, #4]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #4]
  streq r3, [r6, #4]
.L15970:
  mov r3, r5, lsr #8
  ands  r2, r3, #15
  beq .L15974
  ldr r4, [r6, #8]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #8]
  streq r3, [r6, #8]
.L15974:
  mov r3, r5, lsr #12
  ands  r2, r3, #15
  beq .L15978
  ldr r4, [r6, #12]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #12]
  streq r3, [r6, #12]
.L15978:
  mov r3, r5, lsr #16
  ands  r2, r3, #15
  beq .L15982
  ldr r4, [r6, #16]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #16]
  streq r3, [r6, #16]
.L15982:
  mov r3, r5, lsr #20
  ands  r2, r3, #15
  beq .L15986
  ldr r4, [r6, #20]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #20]
  streq r3, [r6, #20]
.L15986:
  mov r3, r5, lsr #24
  ands  r2, r3, #15
  beq .L15990
  ldr r4, [r6, #24]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #24]
  streq r3, [r6, #24]
.L15990:
  movs  r2, r5, lsr #28
  beq .L15964
  ldr r4, [r6, #28]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #28]
  streq r3, [r6, #28]
.L15964:
  add r1, r1, #1
  cmp r1, sl
  add lr, lr, #32
  add r6, r6, #32
  bne .L15963
  mov r3, sl, asl #5
  add r0, r0, r3
  add r8, r8, r3
.L15961:
  ands  lr, ip, #7
  beq .L15754
  ldr ip, [r0, #0]
  mov r4, #0
.L15999:
  ands  r3, ip, #15
  beq .L16000
  ldr r1, [r8, #0]
  orr r2, r7, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r8, #0]
  streq r2, [r8, #0]
.L16000:
  add r4, r4, #1
  cmp lr, r4
  mov ip, ip, lsr #4
  add r8, r8, #4
  bne .L15999
  b .L15754
.L17804:
  .align  2
.L17803:
  .word vram+65472
  .word vram+65600
.L17771:
  rsb sl, r6, r2
  cmp sl, #0
  ble .L15754
  ldr r3, [sp, #4]
  movs  r8, sl, lsr #3
  add r7, r3, r6, asl #2
  beq .L16814
  ldr r3, .L17803
  mov r6, r7
  add r0, r0, r3
  mov lr, ip
  mov r1, #0
.L16816:
  ldr r2, [r0, #68]
  cmp r2, #0
  beq .L16817
  ands  r4, r2, #255
  beq .L16819
  ldr r3, [r6, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r6, #12]
  streq r3, [r6, #12]
.L16819:
  mov r3, r2, lsr #8
  ands  r4, r3, #255
  beq .L16823
  ldr r3, [r6, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r6, #8]
  streq r3, [r6, #8]
.L16823:
  mov r3, r2, lsr #16
  ands  r4, r3, #255
  beq .L16827
  ldr r3, [r6, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r6, #4]
  streq r3, [r6, #4]
.L16827:
  movs  r2, r2, lsr #24
  beq .L16817
  ldr r3, [r6, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r6, #0]
  streq r3, [r6, #0]
.L16817:
  ldr r4, [lr, #0]
  cmp r4, #0
  beq .L16834
  ands  r2, r4, #255
  beq .L16836
  ldr r5, [r6, #28]
  tst r5, #256
  movne r3, r5, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r5, asl #16
  strne r3, [r6, #28]
  streq r3, [r6, #28]
.L16836:
  mov r3, r4, lsr #8
  ands  r2, r3, #255
  beq .L16840
  ldr r3, [r6, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r6, #24]
  streq r3, [r6, #24]
.L16840:
  mov r3, r4, lsr #16
  ands  r2, r3, #255
  beq .L16844
  ldr r3, [r6, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r6, #20]
  streq r3, [r6, #20]
.L16844:
  movs  r2, r4, lsr #24
  beq .L16834
  ldr r4, [r6, #16]
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #16]
  streq r3, [r6, #16]
.L16834:
  add r1, r1, #1
  cmp r1, r8
  sub lr, lr, #64
  add r6, r6, #32
  sub r0, r0, #64
  bne .L16816
  rsb r3, r8, r8, asl #26
  add ip, ip, r3, asl #6
  add r7, r7, r8, asl #5
.L16814:
  ands  lr, sl, #7
  beq .L15754
  cmp lr, #3
  ldrls ip, [ip, #4]
  bls .L16873
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L16855
  ands  r1, r2, #255
  beq .L16857
  ldr r3, [r7, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r7, #12]
  streq r3, [r7, #12]
.L16857:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L16861
  ldr r3, [r7, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r7, #8]
  streq r3, [r7, #8]
.L16861:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L16865
  ldr r3, [r7, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r7, #4]
  streq r3, [r7, #4]
.L16865:
  movs  r2, r2, lsr #24
  beq .L16855
  ldr r3, [r7, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r7, #0]
  streq r3, [r7, #0]
.L16855:
  subs  lr, lr, #4
  ldr ip, [ip, #0]
  addne r7, r7, #16
  beq .L15754
.L16873:
  mov r4, #0
.L16874:
  movs  r0, ip, lsr #24
  beq .L16875
  ldr r2, [r7, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r7, #0]
  streq r0, [r7, #0]
.L16875:
  add r4, r4, #1
  cmp lr, r4
  mov ip, ip, asl #8
  add r7, r7, #4
  bhi .L16874
  b .L15754
.L17763:
  rsb lr, r6, ip
  cmp lr, #0
  ble .L15754
  ldr r2, [sp, #4]
  movs  r8, lr, lsr #3
  add r1, r2, r6, asl #2
  beq .L17083
  mov r5, r1
  mov r6, r0
  mov ip, #0
.L17085:
  ldr r4, [r6, #0]
  cmp r4, #0
  beq .L17086
  ands  r3, r4, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #0]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #4]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #24]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  orrne r3, r7, r3
  strne r3, [r5, #28]
.L17086:
  add ip, ip, #1
  cmp ip, r8
  add r6, r6, #32
  add r5, r5, #32
  bne .L17085
  mov r3, r8, asl #5
  add r0, r0, r3
  add r1, r1, r3
.L17083:
  ands  lr, lr, #7
  beq .L15754
  ldr r0, [r0, #0]
  mov ip, #0
.L17105:
  ldr r5, [sp, #52]
  ands  r3, r0, #15
  orr r3, r5, r3
  orr r3, r7, r3
  strne r3, [r1, ip, asl #2]
  add ip, ip, #1
  cmp ip, lr
  mov r0, r0, lsr #4
  bne .L17105
  b .L15754
.L17773:
  rsb r8, r6, r7
  cmp r8, #0
  ble .L15754
  ldr lr, [sp, #4]
  movs  r7, r8, lsr #3
  add r6, lr, r6, asl #2
  beq .L16478
  ldr r3, .L17803+4
  mov r5, r6
  add r0, r0, r3
  mov lr, ip
  mov r1, #0
.L16480:
  ldr r2, [lr, #0]
  cmp r2, #0
  beq .L16481
  ands  r4, r2, #255
  beq .L16483
  ldr r3, [r5, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r5, #0]
  streq r3, [r5, #0]
.L16483:
  mov r3, r2, lsr #8
  ands  r4, r3, #255
  beq .L16487
  ldr r3, [r5, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r5, #4]
  streq r3, [r5, #4]
.L16487:
  mov r3, r2, lsr #16
  ands  r4, r3, #255
  beq .L16491
  ldr r3, [r5, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r5, #8]
  streq r3, [r5, #8]
.L16491:
  movs  r2, r2, lsr #24
  beq .L16481
  ldr r4, [r5, #12]
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r5, #12]
  streq r3, [r5, #12]
.L16481:
  ldr r2, [r0, #-60]
  cmp r2, #0
  beq .L16498
  ands  r4, r2, #255
  beq .L16500
  ldr r3, [r5, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r5, #16]
  streq r3, [r5, #16]
.L16500:
  mov r3, r2, lsr #8
  ands  r4, r3, #255
  beq .L16504
  ldr r3, [r5, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r5, #20]
  streq r3, [r5, #20]
.L16504:
  mov r3, r2, lsr #16
  ands  r4, r3, #255
  beq .L16508
  ldr r3, [r5, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r4, r3, asl #16
  orrne r3, r4, r3
  orreq r3, r3, #768
  strne r3, [r5, #24]
  streq r3, [r5, #24]
.L16508:
  movs  r2, r2, lsr #24
  beq .L16498
  ldr r3, [r5, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r5, #28]
  streq r3, [r5, #28]
.L16498:
  add r1, r1, #1
  cmp r7, r1
  add lr, lr, #64
  add r5, r5, #32
  add r0, r0, #64
  bne .L16480
  add ip, ip, r7, asl #6
  add r6, r6, r7, asl #5
.L16478:
  ands  lr, r8, #7
  beq .L15754
  cmp lr, #3
  ldrls ip, [ip, #0]
  bls .L16537
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L16519
  ands  r1, r2, #255
  beq .L16521
  ldr r3, [r6, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r6, #0]
  streq r3, [r6, #0]
.L16521:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L16525
  ldr r3, [r6, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r6, #4]
  streq r3, [r6, #4]
.L16525:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L16529
  ldr r3, [r6, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r6, #8]
  streq r3, [r6, #8]
.L16529:
  movs  r2, r2, lsr #24
  beq .L16519
  ldr r1, [r6, #12]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r6, #12]
  streq r3, [r6, #12]
.L16519:
  subs  lr, lr, #4
  ldr ip, [ip, #4]
  addne r6, r6, #16
  beq .L15754
.L16537:
  mov r4, #0
.L16538:
  ands  r0, ip, #255
  beq .L16539
  ldr r2, [r6, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r6, #0]
  streq r0, [r6, #0]
.L16539:
  add r4, r4, #1
  cmp r4, lr
  mov ip, ip, lsr #8
  add r6, r6, #4
  bcc .L16538
  b .L15754
.L17765:
  rsb r8, r6, r8
  cmp r8, #0
  ble .L15754
  ldr r2, [sp, #4]
  movs  lr, r8, lsr #3
  add r1, r2, r6, asl #2
  beq .L17418
  ldr r3, .L17803+4
  mov r5, r1
  add r0, r0, r3
  mov r6, ip
  mov r7, #0
.L17420:
  ldr r4, [r6, #0]
  cmp r4, #0
  beq .L17421
  ands  r3, r4, #255
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  strne r3, [r5, #0]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  strne r3, [r5, #4]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  strne r3, [r5, #8]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r5, #12]
.L17421:
  ldr r4, [r0, #-60]
  cmp r4, #0
  beq .L17430
  ands  r3, r4, #255
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #8
  ands  r3, r3, #255
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #16
  ands  r3, r3, #255
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  strne r3, [r5, #24]
  movs  r3, r4, lsr #24
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r5, #28]
.L17430:
  add r7, r7, #1
  cmp lr, r7
  add r6, r6, #64
  add r5, r5, #32
  add r0, r0, #64
  bne .L17420
  add ip, ip, lr, asl #6
  add r1, r1, lr, asl #5
.L17418:
  ands  lr, r8, #7
  beq .L15754
  cmp lr, #3
  ldrls ip, [ip, #0]
  bls .L17453
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L17443
  ands  r3, r2, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r0, [sp, #52]
  orrne r3, r0, r3
  strne r3, [r1, #12]
.L17443:
  subs  lr, lr, #4
  ldr ip, [ip, #4]
  addne r1, r1, #16
  beq .L15754
.L17453:
  mov r0, #0
.L17454:
  ldr r2, [sp, #52]
  ands  r3, ip, #255
  orr r3, r2, r3
  strne r3, [r1, r0, asl #2]
  add r0, r0, #1
  cmp lr, r0
  mov ip, ip, lsr #8
  bhi .L17454
  b .L15754
.L17769:
  rsb r8, r6, lr
  cmp r8, #0
  ble .L15754
  ldr r2, [sp, #4]
  movs  lr, r8, lsr #3
  add r1, r2, r6, asl #2
  beq .L17213
  mov r5, r1
  mov r6, r0
  mov ip, #0
.L17215:
  ldr r4, [r6, #0]
  cmp r4, #0
  beq .L17216
  ands  r3, r4, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  orrne r3, r7, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #28
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  orrne r3, r7, r3
  strne r3, [r5, #0]
.L17216:
  add ip, ip, #1
  cmp ip, lr
  sub r6, r6, #32
  add r5, r5, #32
  bne .L17215
  rsb r3, lr, lr, asl #27
  add r0, r0, r3, asl #5
  add r1, r1, lr, asl #5
.L17213:
  ands  lr, r8, #7
  beq .L15754
  ldr r0, [r0, #0]
  mov ip, #0
.L17235:
  ldr r5, [sp, #52]
  movs  r3, r0, lsr #28
  orr r3, r5, r3
  orr r3, r7, r3
  strne r3, [r1, ip, asl #2]
  add ip, ip, #1
  cmp ip, lr
  mov r0, r0, asl #4
  bne .L17235
  b .L15754
.L17761:
  rsb sl, r6, r1
  cmp sl, #0
  ble .L15754
  ldr r2, [sp, #4]
  movs  ip, sl, lsr #3
  add r8, r2, r6, asl #2
  beq .L16165
  mov r6, r8
  mov lr, r0
  mov r1, #0
.L16167:
  ldr r5, [lr, #0]
  cmp r5, #0
  beq .L16168
  ands  r2, r5, #15
  beq .L16170
  ldr r4, [r6, #28]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #28]
  streq r3, [r6, #28]
.L16170:
  mov r3, r5, lsr #4
  ands  r2, r3, #15
  beq .L16174
  ldr r4, [r6, #24]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #24]
  streq r3, [r6, #24]
.L16174:
  mov r3, r5, lsr #8
  ands  r2, r3, #15
  beq .L16178
  ldr r4, [r6, #20]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #20]
  streq r3, [r6, #20]
.L16178:
  mov r3, r5, lsr #12
  ands  r2, r3, #15
  beq .L16182
  ldr r4, [r6, #16]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #16]
  streq r3, [r6, #16]
.L16182:
  mov r3, r5, lsr #16
  ands  r2, r3, #15
  beq .L16186
  ldr r4, [r6, #12]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #12]
  streq r3, [r6, #12]
.L16186:
  mov r3, r5, lsr #20
  ands  r2, r3, #15
  beq .L16190
  ldr r4, [r6, #8]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #8]
  streq r3, [r6, #8]
.L16190:
  mov r3, r5, lsr #24
  ands  r2, r3, #15
  beq .L16194
  ldr r4, [r6, #4]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #4]
  streq r3, [r6, #4]
.L16194:
  movs  r2, r5, lsr #28
  beq .L16168
  ldr r4, [r6, #0]
  orr r2, r7, r2
  tst r4, #256
  movne r3, r4, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r4, asl #16
  strne r3, [r6, #0]
  streq r3, [r6, #0]
.L16168:
  add r1, r1, #1
  cmp ip, r1
  sub lr, lr, #32
  add r6, r6, #32
  bne .L16167
  rsb r3, ip, ip, asl #27
  add r0, r0, r3, asl #5
  add r8, r8, ip, asl #5
.L16165:
  ands  lr, sl, #7
  beq .L15754
  ldr ip, [r0, #0]
  mov r4, #0
.L16203:
  movs  r3, ip, lsr #28
  beq .L16204
  ldr r1, [r8, #0]
  orr r2, r7, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r8, #0]
  streq r2, [r8, #0]
.L16204:
  add r4, r4, #1
  cmp r4, lr
  mov ip, ip, asl #4
  add r8, r8, #4
  bne .L16203
  b .L15754
.L17795:
  ldr r5, [sp, #44]
.L16969:
  cmp sl, r3
  bhi .L17739
  b .L15754
.L16970:
  cmp r4, sl
  bcs .L15754
.L17739:
  mov r3, r4, asr #1
  and r8, r3, #3
  mov r3, r4, asr #3
  mov r3, r3, asl #5
  mov r2, r4, asr #1
  tst r4, #1
  add ip, r3, r1
  and r6, r2, #3
  add r2, r3, r1
  ldreqb  r3, [r2, r6]  @ zero_extendqisi2
  ldrneb  r3, [ip, r8]  @ zero_extendqisi2
  ldr lr, [sp, #52]
  movne r2, r3, lsr #4
  andeq r2, r3, #15
  cmp r2, #0
  orr r3, r2, lr
  ldr r2, [sp, #116]
  ldr ip, [sp, #84]
  add r5, r5, #1
  orr r3, r2, r3
  strne r3, [r7, #0]
  add r0, r0, ip
  cmp fp, r5
  mov r4, r0, asr #8
  add r7, r7, #4
  bgt .L16970
  b .L15754
.L17796:
  mov r4, fp
.L15803:
  cmp sl, r3
  bhi .L17727
  b .L15754
.L15804:
  cmp r1, sl
  bcs .L15754
.L17727:
  mov r3, r1, asr #1
  and r5, r3, #3
  mov r3, r1, asr #3
  mov r3, r3, asl #5
  mov r2, r1, asr #1
  and r0, r2, #3
  tst r1, #1
  add r2, r3, lr
  add r1, r3, lr
  ldrneb  r3, [r1, r5]  @ zero_extendqisi2
  ldreqb  r3, [r2, r0]  @ zero_extendqisi2
  movne r0, r3, lsr #4
  andeq r0, r3, #15
  ldr r3, [sp, #120]
  cmp r0, #0
  orr r0, r0, r3
  beq .L15810
  ldr r2, [r7, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r7, #0]
  streq r0, [r7, #0]
.L15810:
  ldr r5, [sp, #72]
  ldr r8, [sp, #136]
  add r4, r4, #1
  add ip, ip, r5
  cmp r8, r4
  add r7, r7, #4
  mov r1, ip, asr #8
  bgt .L15804
  b .L15754
.L17793:
  ldr ip, [sp, #16]
.L15766:
  cmp sl, r2
  bhi .L17725
  b .L15754
.L15767:
  cmp r2, sl
  bcs .L15754
.L17725:
  mov r3, r2, asr #3
  add r3, lr, r3, asl #6
  and r2, r2, #7
  ldrb  r4, [r3, r2]  @ zero_extendqisi2
  cmp r4, #0
  beq .L15770
  ldr r3, [r6, #0]
  mov r2, r3, lsr #16
  mov r2, r2, asl #16
  orr r1, r4, r3, asl #16
  orr r2, r2, #768
  tst r3, #256
  orr r2, r4, r2
  orr r1, r1, #768
  strne r2, [r6, #0]
  streq r1, [r6, #0]
.L15770:
  add ip, ip, #1
  add r0, r0, fp
  cmp r7, ip
  add r6, r6, #4
  mov r2, r0, asr #8
  bgt .L15767
  b .L15754
.L15840:
  mov r3, r4, lsr #3
  mov r1, r3, asl #5
  ands  r3, r4, #7
  add lr, r0, r1
  ldreq ip, [sp, #96]
  bne .L17777
.L15911:
  movs  r5, r8, lsr #3
  beq .L15754
  mov r4, #0
  b .L15923
.L17778:
  add lr, lr, #32
  add ip, ip, #32
.L15923:
  ldr r0, [lr, #0]
  cmp r0, #0
  beq .L15924
  ands  r2, r0, #15
  beq .L15926
  ldr r1, [ip, #0]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #0]
  streq r3, [ip, #0]
.L15926:
  mov r3, r0, lsr #4
  ands  r2, r3, #15
  beq .L15930
  ldr r1, [ip, #4]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #4]
  streq r3, [ip, #4]
.L15930:
  mov r3, r0, lsr #8
  ands  r2, r3, #15
  beq .L15934
  ldr r1, [ip, #8]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #8]
  streq r3, [ip, #8]
.L15934:
  mov r3, r0, lsr #12
  ands  r2, r3, #15
  beq .L15938
  ldr r1, [ip, #12]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #12]
  streq r3, [ip, #12]
.L15938:
  mov r3, r0, lsr #16
  ands  r2, r3, #15
  beq .L15942
  ldr r1, [ip, #16]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #16]
  streq r3, [ip, #16]
.L15942:
  mov r3, r0, lsr #20
  ands  r2, r3, #15
  beq .L15946
  ldr r1, [ip, #20]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #20]
  streq r3, [ip, #20]
.L15946:
  mov r3, r0, lsr #24
  ands  r2, r3, #15
  beq .L15950
  ldr r1, [ip, #24]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #24]
  streq r3, [ip, #24]
.L15950:
  movs  r2, r0, lsr #28
  beq .L15924
  ldr r1, [ip, #28]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #28]
  streq r3, [ip, #28]
.L15924:
  add r4, r4, #1
  cmp r5, r4
  bne .L17778
  b .L15754
.L16584:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  sub lr, ip, r3, asl #6
  ldreq ip, [sp, #96]
  bne .L17779
.L16734:
  movs  r5, r7, lsr #3
  beq .L15754
  mov r4, #0
  b .L16775
.L17780:
  sub lr, lr, #64
  add ip, ip, #32
.L16775:
  ldr r2, [lr, #4]
  cmp r2, #0
  beq .L16776
  ands  r1, r2, #255
  beq .L16778
  ldr r3, [ip, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #12]
  streq r3, [ip, #12]
.L16778:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L16782
  ldr r3, [ip, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #8]
  streq r3, [ip, #8]
.L16782:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L16786
  ldr r3, [ip, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [ip, #4]
  streq r3, [ip, #4]
.L16786:
  movs  r2, r2, lsr #24
  beq .L16776
  ldr r3, [ip, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #0]
  streq r3, [ip, #0]
.L16776:
  ldr r1, [lr, #0]
  cmp r1, #0
  beq .L16793
  ands  r2, r1, #255
  beq .L16795
  ldr r0, [ip, #28]
  tst r0, #256
  movne r3, r0, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r0, asl #16
  strne r3, [ip, #28]
  streq r3, [ip, #28]
.L16795:
  mov r3, r1, lsr #8
  ands  r2, r3, #255
  beq .L16799
  ldr r3, [ip, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #24]
  streq r3, [ip, #24]
.L16799:
  mov r3, r1, lsr #16
  ands  r2, r3, #255
  beq .L16803
  ldr r3, [ip, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [ip, #20]
  streq r3, [ip, #20]
.L16803:
  movs  r2, r1, lsr #24
  beq .L16793
  ldr r1, [ip, #16]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [ip, #16]
  streq r3, [ip, #16]
.L16793:
  add r4, r4, #1
  cmp r5, r4
  bne .L17780
  b .L15754
.L17262:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  add r0, ip, r3, asl #6
  ldreq r1, [sp, #96]
  bne .L17781
.L17366:
  movs  lr, lr, lsr #3
  beq .L15754
  mov ip, #0
  b .L17395
.L17782:
  add r0, r0, #64
  add r1, r1, #32
.L17395:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L17396
  ands  r3, r2, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #12]
.L17396:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L17405
  ands  r3, r2, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #28]
.L17405:
  add ip, ip, #1
  cmp lr, ip
  bne .L17782
  b .L15754
.L17002:
  mov r3, r4, lsr #3
  mov r1, r3, asl #5
  ands  r3, r4, #7
  add r4, r0, r1
  ldreq r1, [sp, #96]
  bne .L17783
.L17051:
  movs  ip, lr, lsr #3
  beq .L15754
  mov r0, #0
  b .L17061
.L17784:
  add r4, r4, #32
  add r1, r1, #32
.L17061:
  ldr r2, [r4, #0]
  cmp r2, #0
  beq .L17062
  ands  r3, r2, #15
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  orrne r3, r7, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #4
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #8
  ands  r3, r3, #15
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  orrne r3, r7, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #12
  ands  r3, r3, #15
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  orrne r3, r7, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #16
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #16]
  mov r3, r2, lsr #20
  ands  r3, r3, #15
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  orrne r3, r7, r3
  strne r3, [r1, #20]
  mov r3, r2, lsr #24
  ands  r3, r3, #15
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  orrne r3, r7, r3
  strne r3, [r1, #24]
  movs  r3, r2, lsr #28
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r1, #28]
.L17062:
  add r0, r0, #1
  cmp ip, r0
  bne .L17784
  b .L15754
.L16248:
  mov r3, r0, lsr #3
  ands  r2, r0, #7
  add lr, ip, r3, asl #6
  ldreq r0, [sp, #96]
  bne .L17785
.L16398:
  movs  r4, r7, lsr #3
  beq .L15754
  mov ip, #0
  b .L16439
.L17786:
  add lr, lr, #64
  add r0, r0, #32
.L16439:
  ldr r2, [lr, #0]
  cmp r2, #0
  beq .L16440
  ands  r1, r2, #255
  beq .L16442
  ldr r3, [r0, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #0]
  streq r3, [r0, #0]
.L16442:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L16446
  ldr r3, [r0, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #4]
  streq r3, [r0, #4]
.L16446:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L16450
  ldr r3, [r0, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #8]
  streq r3, [r0, #8]
.L16450:
  movs  r2, r2, lsr #24
  beq .L16440
  ldr r1, [r0, #12]
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r0, #12]
  streq r3, [r0, #12]
.L16440:
  ldr r2, [lr, #4]
  cmp r2, #0
  beq .L16457
  ands  r1, r2, #255
  beq .L16459
  ldr r3, [r0, #16]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #16]
  streq r3, [r0, #16]
.L16459:
  mov r3, r2, lsr #8
  ands  r1, r3, #255
  beq .L16463
  ldr r3, [r0, #20]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #20]
  streq r3, [r0, #20]
.L16463:
  mov r3, r2, lsr #16
  ands  r1, r3, #255
  beq .L16467
  ldr r3, [r0, #24]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r1, r3, asl #16
  orrne r3, r1, r3
  orreq r3, r3, #768
  strne r3, [r0, #24]
  streq r3, [r0, #24]
.L16467:
  movs  r2, r2, lsr #24
  beq .L16457
  ldr r3, [r0, #28]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r2, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r3, #768
  strne r3, [r0, #28]
  streq r3, [r0, #28]
.L16457:
  add ip, ip, #1
  cmp ip, r4
  bne .L17786
  b .L15754
.L17132:
  ands  r2, r4, #7
  mov r3, r4, lsr #3
  sub r0, r0, r3, asl #5
  ldreq r5, [sp, #96]
  bne .L17787
.L17181:
  movs  r1, r1, lsr #3
  beq .L15754
  mov r2, #0
  b .L17191
.L17788:
  sub r0, r0, #32
  add r5, r5, #32
.L17191:
  ldr r4, [r0, #0]
  cmp r4, #0
  beq .L17192
  ands  r3, r4, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r5, #28]
  mov r3, r4, lsr #4
  ands  r3, r3, #15
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  orrne r3, r7, r3
  strne r3, [r5, #24]
  mov r3, r4, lsr #8
  ands  r3, r3, #15
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  orrne r3, r7, r3
  strne r3, [r5, #20]
  mov r3, r4, lsr #12
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r5, #16]
  mov r3, r4, lsr #16
  ands  r3, r3, #15
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  orrne r3, r7, r3
  strne r3, [r5, #12]
  mov r3, r4, lsr #20
  ands  r3, r3, #15
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  orrne r3, r7, r3
  strne r3, [r5, #8]
  mov r3, r4, lsr #24
  ands  r3, r3, #15
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  orrne r3, r7, r3
  strne r3, [r5, #4]
  movs  r3, r4, lsr #28
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  orrne r3, r7, r3
  strne r3, [r5, #0]
.L17192:
  add r2, r2, #1
  cmp r2, r1
  bne .L17788
  b .L15754
.L16044:
  mov r3, r4, lsr #3
  ands  r2, r4, #7
  sub ip, r0, r3, asl #5
  ldreq r4, [sp, #96]
  bne .L17789
.L16115:
  movs  r5, lr, lsr #3
  beq .L15754
  mov lr, #0
  b .L16127
.L17790:
  sub ip, ip, #32
  add r4, r4, #32
.L16127:
  ldr r0, [ip, #0]
  cmp r0, #0
  beq .L16128
  ands  r2, r0, #15
  beq .L16130
  ldr r1, [r4, #28]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #28]
  streq r3, [r4, #28]
.L16130:
  mov r3, r0, lsr #4
  ands  r2, r3, #15
  beq .L16134
  ldr r1, [r4, #24]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #24]
  streq r3, [r4, #24]
.L16134:
  mov r3, r0, lsr #8
  ands  r2, r3, #15
  beq .L16138
  ldr r1, [r4, #20]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #20]
  streq r3, [r4, #20]
.L16138:
  mov r3, r0, lsr #12
  ands  r2, r3, #15
  beq .L16142
  ldr r1, [r4, #16]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #16]
  streq r3, [r4, #16]
.L16142:
  mov r3, r0, lsr #16
  ands  r2, r3, #15
  beq .L16146
  ldr r1, [r4, #12]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L16146:
  mov r3, r0, lsr #20
  ands  r2, r3, #15
  beq .L16150
  ldr r1, [r4, #8]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L16150:
  mov r3, r0, lsr #24
  ands  r2, r3, #15
  beq .L16154
  ldr r1, [r4, #4]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L16154:
  movs  r2, r0, lsr #28
  beq .L16128
  ldr r1, [r4, #0]
  orr r2, r7, r2
  tst r1, #256
  movne r3, r1, lsr #16
  movne r3, r3, asl #16
  orreq r3, r2, #768
  orrne r2, r2, #768
  orrne r3, r3, r2
  orreq r3, r3, r1, asl #16
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L16128:
  add lr, lr, #1
  cmp lr, r5
  bne .L17790
  b .L15754
.L17482:
  mov r3, r0, lsr #3
  ands  r1, r0, #7
  sub r2, r2, r3, asl #6
  ldreq r0, [sp, #96]
  bne .L17791
.L17586:
  movs  lr, lr, lsr #3
  beq .L15754
  mov ip, #0
  b .L17615
.L17792:
  sub r2, r2, #64
  add r0, r0, #32
.L17615:
  ldr r1, [r2, #4]
  cmp r1, #0
  beq .L17616
  ands  r3, r1, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r0, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r0, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r0, #4]
  movs  r3, r1, lsr #24
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r0, #0]
.L17616:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L17625
  ands  r3, r1, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r0, #28]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r0, #24]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r0, #20]
  movs  r3, r1, lsr #24
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r0, #16]
.L17625:
  add ip, ip, #1
  cmp ip, lr
  bne .L17792
  b .L15754
.L17791:
  cmp r1, #3
  rsb ip, r1, #8
  bls .L17587
  cmp ip, #0
  ldr r0, [r2, #0]
  ldreq r0, [sp, #96]
  beq .L17591
  mov r3, r1, asl #3
  sub r3, r3, #32
  mov r1, r0, asl r3
  mov r0, #0
.L17592:
  movs  r3, r1, lsr #24
  ldr r7, [sp, #52]
  ldrne r8, [sp, #96]
  orr r3, r7, r3
  strne r3, [r8, r0, asl #2]
  add r0, r0, #1
  cmp r0, ip
  mov r1, r1, asl #8
  bne .L17592
  ldr r1, [sp, #96]
  add r0, r1, ip, asl #2
.L17591:
  sub r2, r2, #64
  b .L17586
.L17789:
  rsbs  r8, r2, #8
  ldr r1, [ip, #0]
  ldreq r4, [sp, #96]
  beq .L16118
  mov r3, r2, asl #2
  mov r4, r1, asl r3
  ldr r5, [sp, #96]
  mov r6, #0
.L16119:
  movs  r3, r4, lsr #28
  beq .L16120
  ldr r1, [r5, #0]
  orr r2, r7, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r5, #0]
  streq r2, [r5, #0]
.L16120:
  add r6, r6, #1
  cmp r6, r8
  mov r4, r4, asl #4
  add r5, r5, #4
  bne .L16119
  ldr r0, [sp, #96]
  add r4, r0, r8, asl #2
.L16118:
  sub ip, ip, #32
  b .L16115
.L17787:
  rsbs  ip, r2, #8
  ldr lr, [r0, #0]
  ldreq r5, [sp, #96]
  beq .L17184
  mov r3, r2, asl #2
  mov r4, lr, asl r3
  mov r5, #0
.L17185:
  ldr r8, [sp, #52]
  movs  r3, r4, lsr #28
  ldrne lr, [sp, #96]
  orr r3, r8, r3
  orr r3, r7, r3
  strne r3, [lr, r5, asl #2]
  add r5, r5, #1
  cmp ip, r5
  mov r4, r4, asl #4
  bne .L17185
  ldr r2, [sp, #96]
  add r5, r2, ip, asl #2
.L17184:
  sub r0, r0, #32
  b .L17181
.L17783:
  rsbs  r5, r3, #8
  ldr r0, [r0, r1]
  ldreq r1, [sp, #96]
  beq .L17054
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  mov r2, #0
.L17055:
  ldr r8, [sp, #52]
  ands  r3, r0, #15
  ldrne ip, [sp, #96]
  orr r3, r8, r3
  orr r3, r7, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r2, r5
  mov r0, r0, lsr #4
  bne .L17055
  ldr r0, [sp, #96]
  add r1, r0, r5, asl #2
.L17054:
  add r4, r4, #32
  b .L17051
.L17781:
  cmp r2, #3
  rsb ip, r2, #8
  bls .L17367
  cmp ip, #0
  ldr r1, [r0, #4]
  ldreq r1, [sp, #96]
  beq .L17371
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r2, r1, lsr r3
  mov r1, #0
.L17372:
  ands  r3, r2, #255
  ldr r7, [sp, #52]
  ldrne r8, [sp, #96]
  orr r3, r7, r3
  strne r3, [r8, r1, asl #2]
  add r1, r1, #1
  cmp r1, ip
  mov r2, r2, lsr #8
  bne .L17372
  ldr r2, [sp, #96]
  add r1, r2, ip, asl #2
.L17371:
  add r0, r0, #64
  b .L17366
.L17785:
  cmp r2, #3
  rsb r6, r2, #8
  bls .L16399
  cmp r6, #0
  ldr r1, [lr, #4]
  ldreq r0, [sp, #96]
  beq .L16403
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, lsr r3
  ldr r4, [sp, #96]
  mov r5, #0
.L16404:
  ands  r0, ip, #255
  beq .L16405
  ldr r2, [r4, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r4, #0]
  streq r0, [r4, #0]
.L16405:
  add r5, r5, #1
  cmp r5, r6
  mov ip, ip, lsr #8
  add r4, r4, #4
  bne .L16404
  ldr r5, [sp, #96]
  add r0, r5, r6, asl #2
.L16403:
  add lr, lr, #64
  b .L16398
.L17779:
  cmp r2, #3
  rsb r6, r2, #8
  bls .L16735
  cmp r6, #0
  ldr r1, [lr, #0]
  ldreq ip, [sp, #96]
  beq .L16739
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, asl r3
  ldr r4, [sp, #96]
  mov r5, #0
.L16740:
  movs  r0, ip, lsr #24
  beq .L16741
  ldr r2, [r4, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r4, #0]
  streq r0, [r4, #0]
.L16741:
  add r5, r5, #1
  cmp r6, r5
  mov ip, ip, asl #8
  add r4, r4, #4
  bne .L16740
  ldr r1, [sp, #96]
  add ip, r1, r6, asl #2
.L16739:
  sub lr, lr, #64
  b .L16734
.L17777:
  rsbs  r6, r3, #8
  ldr r0, [r0, r1]
  ldreq ip, [sp, #96]
  beq .L15914
  mov r3, r3, asl #2
  mov ip, r0, lsr r3
  ldr r4, [sp, #96]
  mov r5, #0
.L15915:
  ands  r3, ip, #15
  beq .L15916
  ldr r1, [r4, #0]
  orr r2, r7, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L15916:
  add r5, r5, #1
  cmp r6, r5
  mov ip, ip, lsr #4
  add r4, r4, #4
  bne .L15915
  ldr r3, [sp, #96]
  add ip, r3, r6, asl #2
.L15914:
  add lr, lr, #32
  b .L15911
.L15842:
  ldr lr, [sp, #128]
  rsb r6, r3, #8
  cmp lr, r6
  bge .L15845
  cmp lr, #0
  ble .L15754
  ldr r2, [r0, r1]
  mov r3, r3, asl #2
  mov ip, r2, lsr r3
  ldr r4, [sp, #96]
  mov lr, #0
.L15849:
  ands  r3, ip, #15
  beq .L15850
  ldr r1, [r4, #0]
  orr r2, r7, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L15850:
  ldr r0, [sp, #128]
  add lr, lr, #1
  cmp r0, lr
  mov ip, ip, lsr #4
  add r4, r4, #4
  bne .L15849
  b .L15754
.L16586:
  ldr r7, [sp, #128]
  rsb r6, lr, #8
  cmp r7, r6
  bge .L16589
  cmp r7, #0
  ble .L15754
  cmp lr, #3
  bls .L16592
  mov r3, lr, asl #3
  ldr r2, [r8, #0]
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #96]
  mov r4, #0
.L16595:
  movs  r0, ip, lsr #24
  beq .L16596
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16596:
  ldr r8, [sp, #128]
  add r4, r4, #1
  cmp r8, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L16595
  b .L15754
.L17484:
  ldr lr, [sp, #128]
  rsb r0, ip, #8
  cmp lr, r0
  bge .L17487
  cmp lr, #0
  ble .L15754
  cmp ip, #3
  bls .L17490
  ldr r2, [r6, #0]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L17493:
  movs  r3, r2, lsr #24
  ldr r0, [sp, #52]
  ldrne r4, [sp, #96]
  orr r3, r0, r3
  ldr r5, [sp, #128]
  strne r3, [r4, r1, asl #2]
  add r1, r1, #1
  cmp r5, r1
  mov r2, r2, asl #8
  bne .L17493
  b .L15754
.L16046:
  ldr r2, [sp, #128]
  rsb r6, lr, #8
  cmp r2, r6
  bge .L16049
  cmp r2, #0
  ble .L15754
  ldr r2, [ip, #0]
  mov r3, lr, asl #2
  mov ip, r2, asl r3
  ldr r4, [sp, #96]
  mov lr, #0
.L16053:
  movs  r3, ip, lsr #28
  beq .L16054
  ldr r1, [r4, #0]
  orr r2, r7, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L16054:
  ldr r3, [sp, #128]
  add lr, lr, #1
  cmp r3, lr
  mov ip, ip, asl #4
  add r4, r4, #4
  bne .L16053
  b .L15754
.L17134:
  ldr r1, [sp, #128]
  rsb lr, r5, #8
  cmp r1, lr
  bge .L17137
  cmp r1, #0
  ble .L15754
  ldr r2, [r0, #0]
  mov r3, r5, asl #2
  mov r0, r2, asl r3
  mov r2, #0
.L17141:
  ldr r4, [sp, #52]
  movs  r3, r0, lsr #28
  ldrne r5, [sp, #96]
  orr r3, r4, r3
  orr r3, r7, r3
  ldr r8, [sp, #128]
  strne r3, [r5, r2, asl #2]
  add r2, r2, #1
  cmp r8, r2
  mov r0, r0, asl #4
  bne .L17141
  b .L15754
.L17264:
  ldr ip, [sp, #128]
  rsb r0, lr, #8
  cmp ip, r0
  bge .L17267
  cmp ip, #0
  ble .L15754
  cmp lr, #3
  bls .L17270
  ldr r2, [r6, #4]
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L17273:
  ands  r3, r1, #255
  ldr lr, [sp, #52]
  ldrne r0, [sp, #96]
  orr r3, lr, r3
  strne r3, [r0, r2, asl #2]
  ldr r3, [sp, #128]
  add r2, r2, #1
  cmp r3, r2
  mov r1, r1, lsr #8
  bne .L17273
  b .L15754
.L17004:
  ldr ip, [sp, #128]
  rsb lr, r3, #8
  cmp ip, lr
  bge .L17007
  cmp ip, #0
  ble .L15754
  ldr r2, [r0, r1]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  mov r2, #0
.L17011:
  ldr lr, [sp, #52]
  ands  r3, r0, #15
  ldrne r1, [sp, #96]
  orr r3, lr, r3
  orr r3, r7, r3
  strne r3, [r1, r2, asl #2]
  ldr r3, [sp, #128]
  add r2, r2, #1
  cmp r3, r2
  mov r0, r0, lsr #4
  bne .L17011
  b .L15754
.L16250:
  ldr ip, [sp, #128]
  rsb r5, lr, #8
  cmp ip, r5
  bge .L16253
  cmp ip, #0
  ble .L15754
  cmp lr, #3
  bls .L16256
  mov r3, lr, asl #3
  ldr r2, [r7, #4]
  sub r3, r3, #32
  mov ip, r2, lsr r3
  ldr lr, [sp, #96]
  mov r4, #0
.L16259:
  ands  r0, ip, #255
  beq .L16260
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16260:
  ldr r0, [sp, #128]
  add r4, r4, #1
  cmp r0, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L16259
  b .L15754
.L16399:
  subs  r8, r6, #4
  ldr r1, [lr, #0]
  ldreq r2, [sp, #96]
  beq .L16413
  mov r3, r2, asl #3
  mov ip, r1, lsr r3
  ldr r4, [sp, #96]
  mov r5, #0
.L16414:
  ands  r0, ip, #255
  beq .L16415
  ldr r2, [r4, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r4, #0]
  streq r0, [r4, #0]
.L16415:
  add r5, r5, #1
  cmp r8, r5
  mov ip, ip, lsr #8
  add r4, r4, #4
  bne .L16414
  ldr r4, [sp, #96]
  add r3, r4, r6, asl #2
  sub r2, r3, #16
.L16413:
  ldr r1, [lr, #4]
  cmp r1, #0
  beq .L16421
  ands  r0, r1, #255
  beq .L16423
  ldr r3, [r2, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #0]
  streq r3, [r2, #0]
.L16423:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L16427
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L16427:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L16431
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L16431:
  movs  r1, r1, lsr #24
  beq .L16421
  ldr r3, [r2, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orrne r3, r1, r3
  strne r3, [r2, #12]
  orreq r3, r1, r3, asl #16
  orreq r3, r3, #768
  streq r3, [r2, #12]
.L16421:
  add r0, r2, #16
  add lr, lr, #64
  b .L16398
.L16735:
  subs  r8, r6, #4
  ldr r1, [lr, #4]
  ldreq r2, [sp, #96]
  beq .L16749
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov ip, r1, asl r3
  ldr r4, [sp, #96]
  mov r5, #0
.L16750:
  movs  r0, ip, lsr #24
  beq .L16751
  ldr r2, [r4, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [r4, #0]
  streq r0, [r4, #0]
.L16751:
  add r5, r5, #1
  cmp r8, r5
  mov ip, ip, asl #8
  add r4, r4, #4
  bne .L16750
  ldr r0, [sp, #96]
  add r3, r0, r6, asl #2
  sub r2, r3, #16
.L16749:
  ldr r1, [lr, #0]
  cmp r1, #0
  beq .L16757
  ands  r0, r1, #255
  beq .L16759
  ldr r3, [r2, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #12]
  streq r3, [r2, #12]
.L16759:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L16763
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L16763:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L16767
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L16767:
  movs  r1, r1, lsr #24
  beq .L16757
  ldr r3, [r2, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orrne r3, r1, r3
  strne r3, [r2, #0]
  orreq r3, r1, r3, asl #16
  orreq r3, r3, #768
  streq r3, [r2, #0]
.L16757:
  add ip, r2, #16
  sub lr, lr, #64
  b .L16734
.L15845:
  cmp r6, #0
  ldr r2, [r8, #0]
  ldreq r5, [sp, #96]
  beq .L15857
  mov r3, r3, asl #2
  mov ip, r2, lsr r3
  ldr r4, [sp, #96]
  mov lr, #0
.L15858:
  ands  r3, ip, #15
  beq .L15859
  ldr r1, [r4, #0]
  orr r2, r7, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r4, #0]
  streq r2, [r4, #0]
.L15859:
  add lr, lr, #1
  cmp r6, lr
  mov ip, ip, lsr #4
  add r4, r4, #4
  bne .L15858
  ldr r1, [sp, #96]
  add r5, r1, r6, asl #2
.L15857:
  ldr r2, [sp, #128]
  add r8, r8, #32
  rsb sl, r6, r2
  b .L15844
.L17587:
  subs  r4, ip, #4
  ldr r0, [r2, #4]
  ldreq r0, [sp, #96]
  beq .L17599
  mov r3, r1, asl #3
  sub r3, r3, #32
  mov r1, r0, asl r3
  mov r0, #0
.L17600:
  movs  r3, r1, lsr #24
  ldr r5, [sp, #52]
  ldrne r7, [sp, #96]
  orr r3, r5, r3
  strne r3, [r7, r0, asl #2]
  add r0, r0, #1
  cmp r4, r0
  mov r1, r1, asl #8
  bne .L17600
  ldr r8, [sp, #96]
  add r3, r8, ip, asl #2
  sub r0, r3, #16
.L17599:
  ldr r1, [r2, #0]
  cmp r1, #0
  beq .L17605
  ands  r3, r1, #255
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  strne r3, [r0, #12]
  mov r3, r1, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r0, #8]
  mov r3, r1, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r0, #4]
  movs  r3, r1, lsr #24
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r0, #0]
.L17605:
  add r0, r0, #16
  sub r2, r2, #64
  b .L17586
.L16589:
  cmp lr, #3
  bls .L16627
  cmp r6, #0
  ldr r2, [r8, #0]
  ldreq r5, [sp, #96]
  beq .L16631
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #96]
  mov r4, #0
.L16632:
  movs  r0, ip, lsr #24
  beq .L16633
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16633:
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L16632
  ldr r7, [sp, #96]
  add r5, r7, r6, asl #2
.L16631:
  ldr ip, [sp, #128]
  sub r8, r8, #64
  rsb r7, r6, ip
  b .L16588
.L17487:
  cmp ip, #3
  bls .L17517
  cmp r0, #0
  ldr r2, [r6, #0]
  ldreq r4, [sp, #96]
  beq .L17521
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L17522:
  movs  r3, r2, lsr #24
  ldr ip, [sp, #52]
  ldrne lr, [sp, #96]
  orr r3, ip, r3
  strne r3, [lr, r1, asl #2]
  add r1, r1, #1
  cmp r0, r1
  mov r2, r2, asl #8
  bne .L17522
  ldr r1, [sp, #96]
  add r4, r1, r0, asl #2
.L17521:
  ldr r3, [sp, #128]
  sub r6, r6, #64
  rsb r5, r0, r3
  b .L17486
.L16253:
  cmp lr, #3
  bls .L16291
  cmp r5, #0
  ldr r2, [r7, #4]
  ldreq lr, [sp, #96]
  beq .L16295
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, lsr r3
  ldr lr, [sp, #96]
  mov r4, #0
.L16296:
  ands  r0, ip, #255
  beq .L16297
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16297:
  add r4, r4, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L16296
  ldr r2, [sp, #96]
  add lr, r2, r5, asl #2
.L16295:
  ldr r3, [sp, #128]
  add r7, r7, #64
  rsb r6, r5, r3
  b .L16252
.L17367:
  subs  r4, ip, #4
  ldr r1, [r0, #0]
  ldreq r1, [sp, #96]
  beq .L17379
  mov r3, r2, asl #3
  mov r2, r1, lsr r3
  mov r1, #0
.L17380:
  ands  r3, r2, #255
  ldr r5, [sp, #52]
  ldrne r7, [sp, #96]
  orr r3, r5, r3
  strne r3, [r7, r1, asl #2]
  add r1, r1, #1
  cmp r1, r4
  mov r2, r2, lsr #8
  bne .L17380
  ldr r8, [sp, #96]
  add r3, r8, ip, asl #2
  sub r1, r3, #16
.L17379:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L17385
  ands  r3, r2, #255
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne r4, [sp, #52]
  orrne r3, r4, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne r5, [sp, #52]
  orrne r3, r5, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r7, [sp, #52]
  orrne r3, r7, r3
  strne r3, [r1, #12]
.L17385:
  add r1, r1, #16
  add r0, r0, #64
  b .L17366
.L17007:
  cmp lr, #0
  ldr r2, [r4, #0]
  ldreq r6, [sp, #96]
  beq .L17017
  mov r3, r3, asl #2
  mov r2, r2, lsr r3
  mov r1, #0
.L17018:
  ldr r5, [sp, #52]
  ands  r3, r2, #15
  ldrne r8, [sp, #96]
  orr r3, r5, r3
  orr r3, r7, r3
  strne r3, [r8, r1, asl #2]
  add r1, r1, #1
  cmp lr, r1
  mov r2, r2, lsr #4
  bne .L17018
  ldr ip, [sp, #96]
  add r6, ip, lr, asl #2
.L17017:
  ldr r0, [sp, #128]
  add r4, r4, #32
  rsb r5, lr, r0
  b .L17006
.L16049:
  cmp r6, #0
  ldr r2, [ip, #0]
  ldreq r5, [sp, #96]
  beq .L16061
  mov r3, lr, asl #2
  mov r4, r2, asl r3
  ldr r5, [sp, #96]
  mov lr, #0
.L16062:
  movs  r3, r4, lsr #28
  beq .L16063
  ldr r1, [r5, #0]
  orr r2, r7, r3
  mov r3, r1, lsr #16
  orr r0, r2, #768
  mov r3, r3, asl #16
  orr r2, r2, #768
  tst r1, #256
  orr r3, r3, r0
  orr r2, r2, r1, asl #16
  strne r3, [r5, #0]
  streq r2, [r5, #0]
.L16063:
  add lr, lr, #1
  cmp r6, lr
  mov r4, r4, asl #4
  add r5, r5, #4
  bne .L16062
  ldr r4, [sp, #96]
  add r5, r4, r6, asl #2
.L16061:
  ldr r8, [sp, #128]
  sub ip, ip, #32
  rsb sl, r6, r8
  b .L16048
.L17137:
  cmp lr, #0
  ldr r2, [r0, #0]
  ldreq r1, [sp, #96]
  beq .L17147
  mov r3, r5, asl #2
  mov r4, r2, asl r3
  mov r5, #0
.L17148:
  ldr ip, [sp, #52]
  movs  r3, r4, lsr #28
  ldrne r1, [sp, #96]
  orr r3, ip, r3
  orr r3, r7, r3
  strne r3, [r1, r5, asl #2]
  add r5, r5, #1
  cmp lr, r5
  mov r4, r4, asl #4
  bne .L17148
  ldr r2, [sp, #96]
  add r1, r2, lr, asl #2
.L17147:
  ldr r3, [sp, #128]
  sub r0, r0, #32
  rsb r2, lr, r3
  b .L17136
.L17267:
  cmp lr, #3
  bls .L17297
  cmp r0, #0
  ldr r2, [r6, #4]
  ldreq r4, [sp, #96]
  beq .L17301
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L17302:
  ands  r3, r1, #255
  ldr ip, [sp, #52]
  ldrne lr, [sp, #96]
  orr r3, ip, r3
  strne r3, [lr, r2, asl #2]
  add r2, r2, #1
  cmp r0, r2
  mov r1, r1, lsr #8
  bne .L17302
  ldr r1, [sp, #96]
  add r4, r1, r0, asl #2
.L17301:
  ldr r3, [sp, #128]
  add r6, r6, #64
  rsb r5, r0, r3
  b .L17266
.L17797:
  mov r6, #0
  b .L15820
.L17800:
  mov r6, #0
  b .L16948
.L17799:
  mov ip, #0
  b .L15780
.L17794:
  mov ip, fp
  b .L17737
.L17297:
  subs  ip, r0, #4
  ldr r2, [r6, #0]
  ldreq r1, [sp, #96]
  beq .L17309
  mov r3, lr, asl #3
  mov r1, r2, lsr r3
  mov r2, #0
.L17310:
  ands  r3, r1, #255
  ldr r4, [sp, #52]
  ldrne r5, [sp, #96]
  orr r3, r4, r3
  strne r3, [r5, r2, asl #2]
  add r2, r2, #1
  cmp r2, ip
  mov r1, r1, lsr #8
  bne .L17310
  ldr r7, [sp, #96]
  add r3, r7, r0, asl #2
  sub r1, r3, #16
.L17309:
  ldr r2, [r6, #4]
  cmp r2, #0
  beq .L17315
  ands  r3, r2, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #0]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  strne r3, [r1, #4]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  strne r3, [r1, #8]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  strne r3, [r1, #12]
.L17315:
  add r4, r1, #16
  b .L17301
.L16291:
  subs  r6, r5, #4
  ldr r2, [r7, #0]
  ldreq r2, [sp, #96]
  beq .L16305
  mov r3, lr, asl #3
  mov ip, r2, lsr r3
  ldr lr, [sp, #96]
  mov r4, #0
.L16306:
  ands  r0, ip, #255
  beq .L16307
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16307:
  add r4, r4, #1
  cmp r6, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L16306
  ldr r1, [sp, #96]
  add r3, r1, r5, asl #2
  sub r2, r3, #16
.L16305:
  ldr r1, [r7, #4]
  cmp r1, #0
  beq .L16313
  ands  r0, r1, #255
  beq .L16315
  ldr r3, [r2, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #0]
  streq r3, [r2, #0]
.L16315:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L16319
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L16319:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L16323
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L16323:
  movs  r1, r1, lsr #24
  beq .L16313
  ldr r3, [r2, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orrne r3, r1, r3
  strne r3, [r2, #12]
  orreq r3, r1, r3, asl #16
  orreq r3, r3, #768
  streq r3, [r2, #12]
.L16313:
  add lr, r2, #16
  b .L16295
.L17517:
  subs  lr, r0, #4
  ldr r2, [r6, #4]
  ldreq r1, [sp, #96]
  beq .L17529
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L17530:
  movs  r3, r2, lsr #24
  ldr r4, [sp, #52]
  ldrne r5, [sp, #96]
  orr r3, r4, r3
  strne r3, [r5, r1, asl #2]
  add r1, r1, #1
  cmp lr, r1
  mov r2, r2, asl #8
  bne .L17530
  ldr r7, [sp, #96]
  add r3, r7, r0, asl #2
  sub r1, r3, #16
.L17529:
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L17535
  ands  r3, r2, #255
  ldrne r8, [sp, #52]
  orrne r3, r8, r3
  strne r3, [r1, #12]
  mov r3, r2, lsr #8
  ands  r3, r3, #255
  ldrne ip, [sp, #52]
  orrne r3, ip, r3
  strne r3, [r1, #8]
  mov r3, r2, lsr #16
  ands  r3, r3, #255
  ldrne lr, [sp, #52]
  orrne r3, lr, r3
  strne r3, [r1, #4]
  movs  r3, r2, lsr #24
  ldrne r2, [sp, #52]
  orrne r3, r2, r3
  strne r3, [r1, #0]
.L17535:
  add r4, r1, #16
  b .L17521
.L16627:
  subs  r5, r6, #4
  ldr r2, [r8, #4]
  ldreq r2, [sp, #96]
  beq .L16641
  mov r3, lr, asl #3
  sub r3, r3, #32
  mov ip, r2, asl r3
  ldr lr, [sp, #96]
  mov r4, #0
.L16642:
  movs  r0, ip, lsr #24
  beq .L16643
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16643:
  add r4, r4, #1
  cmp r4, r5
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L16642
  ldr r4, [sp, #96]
  add r3, r4, r6, asl #2
  sub r2, r3, #16
.L16641:
  ldr r1, [r8, #0]
  cmp r1, #0
  beq .L16649
  ands  r0, r1, #255
  beq .L16651
  ldr r3, [r2, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #12]
  streq r3, [r2, #12]
.L16651:
  mov r3, r1, lsr #8
  ands  r0, r3, #255
  beq .L16655
  ldr r3, [r2, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #8]
  streq r3, [r2, #8]
.L16655:
  mov r3, r1, lsr #16
  ands  r0, r3, #255
  beq .L16659
  ldr r3, [r2, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orreq r3, r0, r3, asl #16
  orrne r3, r0, r3
  orreq r3, r3, #768
  strne r3, [r2, #4]
  streq r3, [r2, #4]
.L16659:
  movs  r1, r1, lsr #24
  beq .L16649
  ldr r3, [r2, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  movne r3, r3, asl #16
  orrne r3, r3, #768
  orrne r3, r1, r3
  strne r3, [r2, #0]
  orreq r3, r1, r3, asl #16
  orreq r3, r3, #768
  streq r3, [r2, #0]
.L16649:
  add r5, r2, #16
  b .L16631
.L17490:
  ldr r7, [sp, #128]
  mov r3, ip, asl #3
  ldr r1, [r6, #4]
  add r2, r7, ip
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L17497
  cmp r7, #0
  movne r2, #0
  beq .L15754
.L17513:
  movs  r3, r1, lsr #24
  ldr r5, [sp, #52]
  ldrne r7, [sp, #96]
  orr r3, r5, r3
  ldr r8, [sp, #128]
  strne r3, [r7, r2, asl #2]
  add r2, r2, #1
  cmp r8, r2
  mov r1, r1, asl #8
  bne .L17513
  b .L15754
.L16592:
  ldr ip, [sp, #128]
  mov r3, lr, asl #3
  add r2, ip, lr
  ldr r1, [r8, #4]
  sub r3, r3, #32
  cmp r2, #4
  mov ip, r1, asl r3
  bhi .L16601
  ldr lr, [sp, #128]
  cmp lr, #0
  ldrne lr, [sp, #96]
  movne r4, #0
  beq .L15754
.L16621:
  movs  r0, ip, lsr #24
  beq .L16622
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16622:
  ldr r2, [sp, #128]
  add r4, r4, #1
  cmp r2, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L16621
  b .L15754
.L17270:
  ldr r4, [sp, #128]
  ldr r3, [r6, #0]
  add r2, r4, lr
  cmp r2, #4
  mov r1, lr, asl #3
  mov r2, r3, lsr r1
  bhi .L17277
  cmp r4, #0
  movne r1, #0
  beq .L15754
.L17293:
  ands  r3, r2, #255
  ldr r5, [sp, #52]
  ldrne r7, [sp, #96]
  orr r3, r5, r3
  ldr r8, [sp, #128]
  strne r3, [r7, r1, asl #2]
  add r1, r1, #1
  cmp r8, r1
  mov r2, r2, lsr #8
  bne .L17293
  b .L15754
.L16256:
  ldr r1, [sp, #128]
  ldr r3, [r7, #0]
  add r2, r1, lr
  cmp r2, #4
  mov r1, lr, asl #3
  mov ip, r3, lsr r1
  bhi .L16265
  ldr r2, [sp, #128]
  cmp r2, #0
  ldrne lr, [sp, #96]
  movne r4, #0
  beq .L15754
.L16285:
  ands  r0, ip, #255
  beq .L16286
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16286:
  ldr r0, [sp, #128]
  add r4, r4, #1
  cmp r0, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L16285
  b .L15754
.L16265:
  rsbs  r4, lr, #4
  ldreq lr, [sp, #96]
  beq .L16270
  ldr lr, [sp, #96]
  mov r5, #0
.L16271:
  ands  r0, ip, #255
  beq .L16272
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16272:
  add r5, r5, #1
  cmp r5, r4
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L16271
  ldr r3, [sp, #96]
  add lr, r3, r4, asl #2
.L16270:
  ldr r8, [sp, #128]
  ldr ip, [r7, #4]
  subs  r5, r8, r4
  beq .L15754
  mov r4, #0
.L16279:
  ands  r0, ip, #255
  beq .L16280
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16280:
  add r4, r4, #1
  cmp r4, r5
  mov ip, ip, lsr #8
  add lr, lr, #4
  bne .L16279
  b .L15754
.L17277:
  rsbs  r0, lr, #4
  ldreq ip, [sp, #96]
  beq .L17282
  mov r1, #0
.L17283:
  ands  r3, r2, #255
  ldr r5, [sp, #52]
  ldrne r7, [sp, #96]
  orr r3, r5, r3
  strne r3, [r7, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, lsr #8
  bne .L17283
  ldr r8, [sp, #96]
  add ip, r8, r0, asl #2
.L17282:
  ldr lr, [sp, #128]
  ldr r2, [r6, #4]
  subs  r0, lr, r0
  beq .L15754
  mov r1, #0
.L17289:
  ldr r4, [sp, #52]
  ands  r3, r2, #255
  orr r3, r4, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, lsr #8
  bne .L17289
  b .L15754
.L16601:
  rsbs  r4, lr, #4
  ldreq lr, [sp, #96]
  beq .L16606
  ldr lr, [sp, #96]
  mov r5, #0
.L16607:
  movs  r0, ip, lsr #24
  beq .L16608
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16608:
  add r5, r5, #1
  cmp r5, r4
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L16607
  ldr r0, [sp, #96]
  add lr, r0, r4, asl #2
.L16606:
  ldr r1, [sp, #128]
  ldr ip, [r8, #0]
  subs  r5, r1, r4
  beq .L15754
  mov r4, #0
.L16615:
  movs  r0, ip, lsr #24
  beq .L16616
  ldr r2, [lr, #0]
  orr r1, r0, #768
  mov r3, r2, lsr #16
  orr r0, r0, #768
  mov r3, r3, asl #16
  tst r2, #256
  orr r3, r3, r1
  orr r0, r0, r2, asl #16
  strne r3, [lr, #0]
  streq r0, [lr, #0]
.L16616:
  add r4, r4, #1
  cmp r4, r5
  mov ip, ip, asl #8
  add lr, lr, #4
  bne .L16615
  b .L15754
.L17497:
  rsbs  r0, ip, #4
  ldreq ip, [sp, #96]
  beq .L17502
  mov r2, #0
.L17503:
  movs  r3, r1, lsr #24
  ldr r8, [sp, #52]
  ldrne ip, [sp, #96]
  orr r3, r8, r3
  strne r3, [ip, r2, asl #2]
  add r2, r2, #1
  cmp r2, r0
  mov r1, r1, asl #8
  bne .L17503
  ldr lr, [sp, #96]
  add ip, lr, r0, asl #2
.L17502:
  ldr r1, [sp, #128]
  ldr r2, [r6, #0]
  subs  r0, r1, r0
  beq .L15754
  mov r1, #0
.L17509:
  ldr r4, [sp, #52]
  movs  r3, r2, lsr #24
  orr r3, r4, r3
  strne r3, [ip, r1, asl #2]
  add r1, r1, #1
  cmp r1, r0
  mov r2, r2, asl #8
  bne .L17509
  b .L15754
  .size render_scanline_obj_partial_alpha_2D, .-render_scanline_obj_partial_alpha_2D
  .align  2
  .global order_obj
  .type order_obj, %function
order_obj:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r9, .L17848
  mov sl, r0
  mov ip, #0
.L17806:
  add r3, ip, ip, asl #2
  add r2, r9, r3, asl #7
  mov r3, #0
.L17807:
  add r3, r3, #1
  mov r1, #0
  cmp r3, #160
  str r1, [r2], #4
  bne .L17807
  add ip, ip, #1
  cmp ip, #5
  bne .L17806
  ldr fp, .L17848+4
  mov r3, fp
  add r2, fp, #640
.L17810:
  str r1, [r3], #4
  cmp r3, r2
  bne .L17810
  ldr r5, .L17848+8
  mov r6, #127
.L17812:
  ldrh  r2, [r5, #8]
  ldrh  r7, [r5, #12]
  and r1, r2, #49152
  and r3, r2, #768
  cmp r3, #512
  cmpne r1, #49152
  beq .L17813
  mov r3, r2, lsr #10
  and r0, r3, #3
  cmp r0, #3
  beq .L17813
  cmp sl, #2
  bls .L17816
  mov r3, r7, asl #22
  mov r3, r3, lsr #22
  cmp r3, #512
  bcc .L17813
.L17816:
  ldrh  r4, [r5, #10]
  and ip, r2, #255
  mov r3, r4, lsr #14
  orr r3, r3, r1, lsr #12
  ldr r1, .L17848+12
  cmp ip, #160
  subgt ip, ip, #256
  ldr r1, [r1, r3, asl #2]
  tst r2, #512
  ldr r2, .L17848+16
  movne r1, r1, asl #1
  ldr r2, [r2, r3, asl #2]
  add lr, ip, r1
  movne r2, r2, asl #1
  cmp lr, #0
  movle r3, #0
  movgt r3, #1
  cmp ip, #159
  movgt r3, #0
  cmp r3, #0
  beq .L17813
  mov r3, r4, asl #23
  mov r3, r3, asr #23
  add r2, r2, r3
  cmp r2, #0
  movle r1, #0
  movgt r1, #1
  cmp r3, #239
  movgt r1, #0
  cmp r1, #0
  beq .L17813
  cmp ip, #0
  movlt ip, #0
  cmp lr, #160
  movge lr, #160
  mov r3, r7, lsr #10
  cmp r0, #1
  and r3, r3, #3
  beq .L17847
  cmp r0, #2
  moveq r3, #4
  cmp lr, ip
  ble .L17813
  add r3, r3, r3, asl #2
  ldr r2, .L17848+20
  rsb r1, ip, lr
  add r3, ip, r3, asl #5
  mov r0, ip
  add r1, ip, r1
  add lr, r2, r3, asl #7
  and r4, r6, #255
  add ip, r9, r3, asl #2
.L17833:
  ldr r2, [ip, #0]
  add r0, r0, #1
  add r3, r2, #1
  cmp r0, r1
  strb  r4, [lr, r2]
  str r3, [ip], #4
  add lr, lr, #128
  bne .L17833
.L17813:
  sub r6, r6, #1
  cmn r6, #1
  sub r5, r5, #8
  bne .L17812
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L17847:
  cmp lr, ip
  ble .L17813
  add r3, r3, r3, asl #2
  ldr r2, .L17848+20
  add r3, ip, r3, asl #5
  rsb r1, ip, lr
  mov r4, ip
  add r8, ip, r1
  add r0, r2, r3, asl #7
  and r7, r6, #255
  add lr, r9, r3, asl #2
  add ip, fp, ip, asl #2
.L17829:
  ldr r3, [lr, #0]
  ldr r2, [ip, #0]
  add r4, r4, #1
  add r1, r3, #1
  add r2, r2, #1
  cmp r4, r8
  strb  r7, [r0, r3]
  str r1, [lr], #4
  str r2, [ip], #4
  add r0, r0, #128
  bne .L17829
  sub r6, r6, #1
  cmn r6, #1
  sub r5, r5, #8
  bne .L17812
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L17849:
  .align  2
.L17848:
  .word obj_priority_count
  .word obj_alpha_count
  .word oam_ram+1008
  .word obj_height_table
  .word obj_width_table
  .word obj_priority_list
  .size order_obj, .-order_obj
  .align  2
  .global order_layers
  .type order_layers, %function
order_layers:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
  ldr r6, .L17989
  ldr r3, .L17989+4
  ldrh  r2, [r6, #6]
  ldr sl, .L17989+8
  add r4, r3, r2, asl #2
  and r3, r0, #8
  mov r1, #0
  cmp r3, #0
  and ip, r0, #1
  and r7, r0, #16
  and r2, r0, #4
  ldr r8, .L17989+12
  mov r5, r1
  mov lr, #3
  and r0, r0, #2
  str r1, [sl, #0]
  bne .L17967
  cmp ip, #0
  beq .L17979
  cmp r0, #0
  bne .L17985
  cmp r2, #0
  bne .L17988
.L17851:
  ldrh  r3, [r6, #8]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #0
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  sub r4, r4, #640
  beq .L17855
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17855:
  subs  lr, lr, #1
  bcs .L17851
.L17869:
  str r5, [sl, #0]
  ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
.L17967:
  cmp ip, #0
  beq .L17969
  cmp r0, #0
  bne .L17975
  cmp r2, #0
  bne .L17978
.L17884:
  ldrh  r3, [r6, #14]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #3
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #8]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #0
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  sub r4, r4, #640
  beq .L17875
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17875:
  subs  lr, lr, #1
  bcc .L17869
  b .L17884
.L17969:
  cmp r0, #0
  bne .L17971
  cmp r2, #0
  bne .L17974
.L17890:
  ldrh  r3, [r6, #14]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #3
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  sub r4, r4, #640
  beq .L17883
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17883:
  subs  lr, lr, #1
  bcc .L17869
  b .L17890
.L17979:
  cmp r0, #0
  bne .L17981
  cmp r2, #0
  bne .L17984
.L17935:
  ldr r3, [r4, #1920]
  sub r4, r4, #640
  cmp r3, #0
  beq .L17930
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17930:
  subs  lr, lr, #1
  bcc .L17869
  b .L17935
.L17985:
  cmp r2, #0
  bne .L17987
.L17958:
  ldrh  r3, [r6, #10]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #1
  streq r3, [r8, r5, asl #2]
  addeq r5, r5, r3
  ldrh  r3, [r6, #8]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #0
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  sub r4, r4, #640
  beq .L17951
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17951:
  subs  lr, lr, #1
  bcc .L17869
  b .L17958
.L17987:
  ldrh  r3, [r6, #12]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #2
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #10]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #1
  streq r3, [r8, r5, asl #2]
  addeq r5, r5, r3
  ldrh  r3, [r6, #8]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #0
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  beq .L17957
  cmp r7, #0
  orrne r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17957:
  sub lr, lr, #1
  cmn lr, #1
  sub r4, r4, #640
  bne .L17987
  b .L17869
.L17975:
  cmp r2, #0
  bne .L17977
.L17917:
  ldrh  r3, [r6, #14]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #3
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #10]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #1
  streq r3, [r8, r5, asl #2]
  addeq r5, r5, r3
  ldrh  r3, [r6, #8]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #0
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  beq .L17909
  cmp r7, #0
  orrne r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17909:
  sub lr, lr, #1
  cmn lr, #1
  sub r4, r4, #640
  bne .L17917
  b .L17869
.L17977:
  ldrh  r3, [r6, #14]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #3
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #12]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #2
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #10]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #1
  streq r3, [r8, r5, asl #2]
  addeq r5, r5, r3
  ldrh  r3, [r6, #8]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #0
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  beq .L17916
  cmp r7, #0
  orrne r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17916:
  sub lr, lr, #1
  cmn lr, #1
  sub r4, r4, #640
  bne .L17977
  b .L17869
.L17978:
  ldrh  r3, [r6, #14]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #3
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #12]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #2
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #8]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #0
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  beq .L17923
  cmp r7, #0
  orrne r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17923:
  sub lr, lr, #1
  cmn lr, #1
  sub r4, r4, #640
  bne .L17978
  b .L17869
.L17971:
  cmp r2, #0
  bne .L17973
.L17897:
  ldrh  r3, [r6, #14]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #3
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #10]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #1
  streq r3, [r8, r5, asl #2]
  addeq r5, r5, r3
  ldr r3, [r4, #1920]
  sub r4, r4, #640
  cmp r3, #0
  beq .L17889
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17889:
  subs  lr, lr, #1
  bcc .L17869
  b .L17897
.L17973:
  ldrh  r3, [r6, #14]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #3
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #12]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #2
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #10]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #1
  streq r3, [r8, r5, asl #2]
  addeq r5, r5, r3
  ldr r3, [r4, #1920]
  cmp r3, #0
  beq .L17896
  cmp r7, #0
  orrne r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17896:
  sub lr, lr, #1
  cmn lr, #1
  sub r4, r4, #640
  bne .L17973
  b .L17869
.L17974:
  ldrh  r3, [r6, #14]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #3
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #12]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #2
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  sub r4, r4, #640
  beq .L17902
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17902:
  subs  lr, lr, #1
  bcc .L17869
  b .L17974
.L17981:
  cmp r2, #0
  bne .L17983
.L17941:
  ldrh  r3, [r6, #10]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #1
  streq r3, [r8, r5, asl #2]
  addeq r5, r5, r3
  ldr r3, [r4, #1920]
  sub r4, r4, #640
  cmp r3, #0
  beq .L17934
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17934:
  subs  lr, lr, #1
  bcc .L17869
  b .L17941
.L17983:
  ldrh  r3, [r6, #12]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #2
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #10]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #1
  streq r3, [r8, r5, asl #2]
  addeq r5, r5, r3
  ldr r3, [r4, #1920]
  sub r4, r4, #640
  cmp r3, #0
  beq .L17940
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17940:
  subs  lr, lr, #1
  bcc .L17869
  b .L17983
.L17984:
  ldrh  r3, [r6, #12]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #2
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  sub r4, r4, #640
  beq .L17945
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17945:
  subs  lr, lr, #1
  bcc .L17869
  b .L17984
.L17988:
  ldrh  r3, [r6, #12]
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #2
  streq r3, [r8, r5, asl #2]
  ldrh  r3, [r6, #8]
  addeq r5, r5, #1
  and r3, r3, #3
  cmp r3, lr
  moveq r3, #0
  streq r3, [r8, r5, asl #2]
  ldr r3, [r4, #1920]
  addeq r5, r5, #1
  cmp r3, #0
  sub r4, r4, #640
  beq .L17963
  cmp r7, #0
  orr r3, lr, #4
  strne r3, [r8, r5, asl #2]
  addne r5, r5, #1
.L17963:
  subs  lr, lr, #1
  bcc .L17869
  b .L17988
.L17990:
  .align  2
.L17989:
  .word io_registers
  .word obj_priority_count
  .word layer_count
  .word layer_order
  .size order_layers, .-order_layers
  .align  2
  .global fill_line_normal
  .type fill_line_normal, %function
fill_line_normal:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  str lr, [sp, #-4]!
  mov r0, r0, asl #16
  mov lr, r3
  cmp r2, r3
  ldr r3, .L17997
  mov r0, r0, lsr #15
  ldrh  ip, [r0, r3]
  ldrcs pc, [sp], #4
  rsb r3, r2, lr
  add r1, r1, r2, asl #1
  mov r0, #0
.L17994:
  add r0, r0, #1
  cmp r0, r3
  strh  ip, [r1], #2  @ movhi
  bne .L17994
  ldr pc, [sp], #4
.L17998:
  .align  2
.L17997:
  .word palette_ram_converted
  .size fill_line_normal, .-fill_line_normal
  .align  2
  .global fill_line_alpha
  .type fill_line_alpha, %function
fill_line_alpha:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
  mov r0, r0, asl #16
  cmp r2, r3
  @ lr needed for prologue
  mov r0, r0, lsr #16
  bxcs  lr
  rsb r3, r2, r3
  add r1, r1, r2, asl #2
  mov ip, #0
.L18002:
  add ip, ip, #1
  cmp ip, r3
  str r0, [r1], #4
  bne .L18002
  bx  lr
  .size fill_line_alpha, .-fill_line_alpha
  .align  2
  .global fill_line_color16
  .type fill_line_color16, %function
fill_line_color16:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
  mov r0, r0, asl #16
  cmp r2, r3
  @ lr needed for prologue
  mov r0, r0, lsr #16
  bxcs  lr
  rsb r3, r2, r3
  add r1, r1, r2, asl #1
  mov ip, #0
.L18008:
  add ip, ip, #1
  cmp ip, r3
  strh  r0, [r1], #2  @ movhi
  bne .L18008
  bx  lr
  .size fill_line_color16, .-fill_line_color16
  .align  2
  .global fill_line_color32
  .type fill_line_color32, %function
fill_line_color32:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
  mov r0, r0, asl #16
  cmp r2, r3
  @ lr needed for prologue
  mov r0, r0, lsr #16
  bxcs  lr
  rsb r3, r2, r3
  add r1, r1, r2, asl #2
  mov ip, #0
.L18014:
  add ip, ip, #1
  cmp ip, r3
  str r0, [r1], #4
  bne .L18014
  bx  lr
  .size fill_line_color32, .-fill_line_color32
  .align  2
  .global expand_blend
  .type expand_blend, %function

expand_blend:
  @ args = 0, pretend = 0, frame = 4
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  mov r6, r0                  # r6 = screen_src_ptr
  ldr r0, .L18042             # r0 = io_registers
  mov lr, r1                  # lr = screen_dest_ptr
  ldrh  ip, [r0, #82]         # ip = REG_BLDALPHA
  sub sp, sp, #4              # make room on stack for 1 word
  mov r1, ip, lsr #8          # r1 = REG_BLDALPHA >> 8
  and r1, r1, #31             # r1 = (REG_BLDALPHA >> 8) & 0x1F = blend_b
  and ip, ip, #31             # ip = REG_BLDALPHA & 0x1F = blend_a
  cmp ip, #16                 # if(blend_a > 16)
  movcs ip, #16               #   blend_a = 16
  cmp r1, #16                 # fp = blend_b
  movcc fp, r1                # if(blend_b > 16)
  movcs fp, #16               #   blend_b = 16
  add r0, fp, ip              # r0 = blend_a + blend_b
  cmp r0, #16                 # if((blend_a + blend_b) > 16)
  str ip, [sp, #0]            #   save blend_a to stack
  bls .L18018                 #   goto blend w/o saturation

  subs  r8, r3, r2            # r8 = end - start
  beq .L18040                 # if((end - start) == 0) we're already done

  ldr r7, .L18042+4           # r7 = palette_ram_converted
  ldr sl, .L18042+8           # sl = 0x4000200
  add r4, r6, r2, asl #2      # r4 = screen_src_ptr + (start * 4)
  add r5, lr, r2, asl #1      # r5 = screen_dest_ptr + (start * 2)
  mov r6, #0                  # r6 = 0
  b .L18022

.L18023:
  mov r3, r0, asl #23
  mov r3, r3, lsr #23
  mov r3, r3, asl #1
  ldrh  r3, [r3, r7]
  add r6, r6, #1
  cmp r8, r6
  strh  r3, [r5, #0]  @ movhi
  beq .L18040

.L18041:                      # next_iteration
  add r4, r4, #4              # screen_src_ptr++
  add r5, r5, #2              # screen_dest_ptr++

.L18022:                      # blend w/o saturation
  ldr r0, [r4, #0]            # r0 = *screen_src_ptr = pixel_source
  ldr r3, .L18042+8           # r3 = 0x4000200
  and r3, r0, r3              # r3 = (pixel_source & 0x400200)
  cmp r3, sl                  # if(r3 == 0x4000200)
  bne .L18023                 #   if not, don't perform blending
  ldr r3, .L18042+12          # r3 = 0x3FE
  mov r2, r0, lsr #15         # r2 = pixel_source >> 15
  and r3, r2, r3              # r3 = (pixel_source >> 15) & 0x3FE = low_color_i
  ldrh  r1, [r3, r7]          # r1 = palette_ram_converted[low_color_i] = low_color
  mov r0, r0, asl #23         # r0 = r0 << 23
  ldr ip, .L18042+16          # ip = 0x7EF81F
  orr r1, r1, r1, asl #16     # r1 = (low_color << 16) | low_color = low_split
  mov r0, r0, lsr #23         # r0 = pixel_source & 0x1FF
  and ip, r1, ip              # ip = low_split & 0x7EF81F = pixel_bottom
  mov r0, r0, asl #1          # r0 = (pixel_source & 0x1FF) << 1 = high_color_i
  ldrh  r2, [r0, r7]          # r2 = palette_ram_converted[high_color_i] = high_color
  mul lr, fp, ip              # lr = pixel_bottom * blend_b
  ldr r3, .L18042+16          # r3 = 0x7EF81F
  orr r2, r2, r2, asl #16     # r2 = (high_color << 16) | high_color = high_split
  ldr r1, [sp, #0]            # r1 = blend_a
  and r3, r2, r3              # r3 = high_split & 0x7EF81F = pixel_top
  mla r1, r3, r1, lr          # r1 = (pixel_top * blend_a) + (pixel_bottom * blend_b)
  ldr r2, .L18042+20          # r2 = 0x8010020
  mov r1, r1, lsr #4          # r1 = ((pixel_top * blend_a) + (pixel_bottom * blend_b)) >> 4
  and r2, r1, r2              # r2 = test any saturation on result
  cmp r2, #0                  # if(!saturation)
  beq .L18025                 #   goto finish_iteration
  tst r1, #134217728
  orrne r1, r1, #132120576
  tst r1, #65536
  orrne r1, r1, #63488
  tst r1, #32
  orrne r1, r1, #31

.L18025:                      # finish_iteration
  ldr r3, .L18042+16          # r3 = 0x7EF81F
  add r6, r6, #1              # i++
  and r3, r1, r3              # r3 = pixel_result_dilate & 0x7EF81F
  orr r3, r3, r3, lsr #16     # r3 = (pixel_result_dilate >> 16) | pixel_result_dilate
  cmp r8, r6                  # *screen_dest_ptr = pixel_result
  strh  r3, [r5, #0]  @ movhi # if(i != end)
  bne .L18041                 #   goto next_iteration
.L18040:
  add sp, sp, #4
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}

.L18018:                      # blend w/o saturation
  subs  r9, r3, r2
  beq .L18040
  ldr sl, .L18042+4
  add r4, lr, r2, asl #1
  mov r7, #0
  add lr, r6, r2, asl #2
  b .L18035
.L18036:
  ldrh  r3, [r3, sl]
  strh  r3, [r4, #0]  @ movhi
.L18038:
  add r7, r7, #1
  cmp r9, r7
  add lr, lr, #4
  add r4, r4, #2
  beq .L18040

.L18035:
  ldr r1, [lr, #0]
  ldr ip, .L18042+12
  mov r3, r1, asl #23
  ldr r0, .L18042+8
  mov r2, r1, lsr #15
  mov r3, r3, lsr #23
  and r0, r1, r0
  and ip, r2, ip
  mov r2, r3, asl #1
  mov r3, r1, asl #23
  ldr r1, .L18042+8
  ldr r6, .L18042+16
  mov r3, r3, lsr #23
  cmp r0, r1
  mov r8, r6
  mov r5, r6
  mov r3, r3, asl #1
  bne .L18036
  ldrh  r3, [ip, sl]
  ldrh  r2, [r2, sl]
  orr r3, r3, r3, asl #16
  and r6, r3, r6
  mul r1, fp, r6
  orr r2, r2, r2, asl #16
  ldr r3, [sp, #0]
  and r8, r2, r8
  mla r3, r8, r3, r1
  mov r3, r3, lsr #4
  and r5, r3, r5
  orr r2, r5, r5, lsr #16
  strh  r2, [r4, #0]  @ movhi
  b .L18038

.L18043:
  .align  2

.L18042:
  .word io_registers
  .word palette_ram_converted
  .word 67109376
  .word 1022
  .word 132184095
  .word 134283296
  .size expand_blend, .-expand_blend
  .align  2
  .global expand_darken
  .type expand_darken, %function
expand_darken:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr ip, .L18053
  stmfd sp!, {r4, r5, r6, r7, r8, lr}
  mov lr, r2
  ldrh  r2, [ip, #84]
  and r2, r2, #31
  rsb r2, r2, #16
  cmp r2, #0
  movge r8, r2
  movlt r8, #0
  subs  r6, r3, lr
  ldmeqfd sp!, {r4, r5, r6, r7, r8, pc}
  mov r3, lr, asl #1
  ldr r7, .L18053+4
  add ip, r3, r1
  add r0, r3, r0
  mov r5, #0
.L18047:
  ldrh  r3, [r0, #0]
  ldr r4, .L18053+8
  mov r2, r3, asl #23
  mov r2, r2, lsr #23
  tst r3, #512
  mov r2, r2, asl #1
  mov r1, r3, asl #23
  ldrneh  r3, [r2, r7]
  mov lr, r4
  orrne r3, r3, r3, asl #16
  andne r4, r3, r4
  mulne r2, r8, r4
  mov r1, r1, lsr #23
  mov r1, r1, asl #1
  movne r2, r2, lsr #4
  andne lr, r2, lr
  ldreqh  r1, [r1, r7]
  orrne r3, lr, lr, lsr #16
  add r5, r5, #1
  strneh  r3, [ip, #0]  @ movhi
  streqh  r1, [ip, #0]  @ movhi
  cmp r6, r5
  add r0, r0, #2
  add ip, ip, #2
  bne .L18047
  ldmfd sp!, {r4, r5, r6, r7, r8, pc}
.L18054:
  .align  2
.L18053:
  .word io_registers
  .word palette_ram_converted
  .word 132184095
  .size expand_darken, .-expand_darken
  .align  2
  .global expand_brighten
  .type expand_brighten, %function
expand_brighten:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
  mov lr, r2
  ldr r2, .L18064
  ldr r7, .L18064+4
  ldrh  ip, [r2, #84]
  and ip, ip, #31
  cmp ip, #16
  movcs ip, #16
  rsb r2, ip, ip, asl #6
  add r2, ip, r2, asl #5
  rsb r2, r2, r2, asl #16
  mov r2, r2, lsr #4
  subs  r6, r3, lr
  and r7, r2, r7
  rsb r8, ip, #16
  ldmeqfd sp!, {r4, r5, r6, r7, r8, sl, pc}
  mov r3, lr, asl #1
  ldr sl, .L18064+8
  add ip, r3, r1
  add r0, r3, r0
  mov r5, #0
.L18058:
  ldrh  r3, [r0, #0]
  ldr r4, .L18064+4
  mov r2, r3, asl #23
  mov r2, r2, lsr #23
  tst r3, #512
  mov r2, r2, asl #1
  mov r1, r3, asl #23
  ldrneh  r3, [r2, sl]
  mov lr, r4
  orrne r3, r3, r3, asl #16
  andne r4, r3, r4
  mulne r2, r4, r8
  mov r1, r1, lsr #23
  mov r1, r1, asl #1
  addne r2, r7, r2, lsr #4
  andne lr, r2, lr
  ldreqh  r1, [r1, sl]
  orrne r3, lr, lr, lsr #16
  add r5, r5, #1
  strneh  r3, [ip, #0]  @ movhi
  streqh  r1, [ip, #0]  @ movhi
  cmp r6, r5
  add r0, r0, #2
  add ip, ip, #2
  bne .L18058
  ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
.L18065:
  .align  2
.L18064:
  .word io_registers
  .word 132184095
  .word palette_ram_converted
  .size expand_brighten, .-expand_brighten
  .align  2
  .global expand_darken_partial_alpha
  .type expand_darken_partial_alpha, %function
expand_darken_partial_alpha:
  @ args = 0, pretend = 0, frame = 16
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r4, .L18099
  mov r6, r0
  ldrh  r0, [r4, #82]
  ldrh  lr, [r4, #84]
  mov ip, r0, lsr #8
  and ip, ip, #31
  and r0, r0, #31
  sub sp, sp, #16
  cmp r0, #16
  movcs r0, #16
  cmp ip, #16
  movcs ip, #16
  and lr, lr, #31
  str r0, [sp, #4]
  rsb lr, lr, #16
  add r0, ip, r0
  cmp lr, #0
  movlt lr, #0
  cmp r0, #16
  str ip, [sp, #8]
  str lr, [sp, #0]
  bls .L18067
  subs  r8, r3, r2
  beq .L18093
  ldr r7, .L18099+4
  add r4, r6, r2, asl #2
  add r5, r1, r2, asl #1
  mov r6, #0
  b .L18071
.L18095:
  ldr r3, .L18099+8
  ldr r2, .L18099+8
  and r3, r0, r3
  cmp r3, r2
  beq .L18094
  mov r3, r0, asl #23
  mov r3, r3, lsr #23
  mov r3, r3, asl #1
  ldrh  r2, [r3, r7]
  ldr r1, .L18099+12
  orr r2, r2, r2, asl #16
  ldr r0, [sp, #0]
  and r1, r2, r1
  mul r0, r1, r0
  ldr r3, .L18099+12
  mov r0, r0, lsr #4
  and r3, r0, r3
  orr r3, r3, r3, lsr #16
  strh  r3, [r5, #0]  @ movhi
.L18083:
  add r6, r6, #1
  cmp r8, r6
  beq .L18093
.L18096:
  add r4, r4, #4
  add r5, r5, #2
.L18071:
  ldr r0, [r4, #0]
  tst r0, #512
  bne .L18095
  mov r3, r0, asl #23
  mov r3, r3, lsr #23
  mov r3, r3, asl #1
  ldrh  r3, [r3, r7]
  add r6, r6, #1
  cmp r8, r6
  strh  r3, [r5, #0]  @ movhi
  bne .L18096
.L18093:
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L18067:
  subs  r3, r3, r2
  str r3, [sp, #12]
  beq .L18093
  ldr fp, .L18099+4
  add r4, r1, r2, asl #1
  add r0, r6, r2, asl #2
  mov sl, #0
  b .L18086
.L18098:
  ldr r5, .L18099+16
  mov r3, r1, lsr #15
  and r5, r3, r5
  mov r3, r1, asl #23
  mov r3, r3, lsr #23
  mov r7, r3, asl #1
  ldr r3, .L18099+8
  ldr r9, .L18099+12
  mov r2, r1, asl #23
  mov r2, r2, lsr #23
  cmp lr, r3
  mov r2, r2, asl #1
  mov r8, r9
  mov ip, r9
  mov r6, r9
  beq .L18097
  ldrh  r3, [r2, fp]
  ldr r2, [sp, #0]
  orr r3, r3, r3, asl #16
  and ip, r3, r9
  mul r2, ip, r2
  mov r2, r2, lsr #4
  and r1, r2, r9
  orr r3, r1, r1, lsr #16
  strh  r3, [r4, #0]  @ movhi
.L18091:
  ldr ip, [sp, #12]
  add sl, sl, #1
  cmp ip, sl
  add r0, r0, #4
  add r4, r4, #2
  beq .L18093
.L18086:
  ldr r1, [r0, #0]
  ldr lr, .L18099+8
  mov r3, r1, asl #23
  mov r3, r3, lsr #23
  tst r1, #512
  and lr, r1, lr
  mov r3, r3, asl #1
  bne .L18098
  ldrh  r3, [r3, fp]
  strh  r3, [r4, #0]  @ movhi
  b .L18091
.L18097:
  ldrh  r3, [r5, fp]
  ldr r1, [sp, #8]
  orr r3, r3, r3, asl #16
  and r9, r3, r9
  ldrh  r2, [r7, fp]
  mul r1, r9, r1
  orr r2, r2, r2, asl #16
  ldr r3, [sp, #4]
  and r8, r2, r8
  mla r3, r8, r3, r1
  mov r3, r3, lsr #4
  and r6, r3, ip
  orr r2, r6, r6, lsr #16
  strh  r2, [r4, #0]  @ movhi
  b .L18091
.L18094:
  ldr r3, .L18099+16
  mov r2, r0, lsr #15
  and r3, r2, r3
  ldrh  r1, [r3, r7]
  mov r0, r0, asl #23
  ldr ip, .L18099+12
  orr r1, r1, r1, asl #16
  mov r0, r0, lsr #23
  ldr lr, [sp, #8]
  and ip, r1, ip
  mov r0, r0, asl #1
  ldrh  r2, [r0, r7]
  mul lr, ip, lr
  ldr r3, .L18099+12
  orr r2, r2, r2, asl #16
  ldr r1, [sp, #4]
  and r3, r2, r3
  mla r1, r3, r1, lr
  ldr r2, .L18099+20
  mov r1, r1, lsr #4
  and r2, r1, r2
  cmp r2, #0
  beq .L18076
  tst r1, #134217728
  orrne r1, r1, #132120576
  tst r1, #65536
  orrne r1, r1, #63488
  tst r1, #32
  orrne r1, r1, #31
.L18076:
  ldr r3, .L18099+12
  and r3, r1, r3
  orr r3, r3, r3, lsr #16
  strh  r3, [r5, #0]  @ movhi
  b .L18083
.L18100:
  .align  2
.L18099:
  .word io_registers
  .word palette_ram_converted
  .word 67109376
  .word 132184095
  .word 1022
  .word 134283296
  .size expand_darken_partial_alpha, .-expand_darken_partial_alpha
  .align  2
  .global expand_brighten_partial_alpha
  .type expand_brighten_partial_alpha, %function
expand_brighten_partial_alpha:
  @ args = 0, pretend = 0, frame = 20
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr ip, .L18134
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldrh  r5, [ip, #84]
  ldrh  r4, [ip, #82]
  and r5, r5, #31
  cmp r5, #16
  movge r5, #16
  mov lr, r4, lsr #8
  rsb ip, r5, r5, asl #6
  add ip, r5, ip, asl #5
  and lr, lr, #31
  and r4, r4, #31
  sub sp, sp, #20
  cmp r4, #16
  movcs r4, #16
  cmp lr, #16
  movcs lr, #16
  rsb ip, ip, ip, asl #16
  ldr r6, .L18134+4
  str lr, [sp, #12]
  mov ip, ip, asr #4
  add lr, lr, r4
  and r6, ip, r6
  rsb r5, r5, #16
  cmp lr, #16
  str r4, [sp, #8]
  str r6, [sp, #0]
  str r5, [sp, #4]
  bls .L18102
  subs  r8, r3, r2
  beq .L18128
  ldr r7, .L18134+8
  add r4, r1, r2, asl #1
  add r5, r0, r2, asl #2
  mov r6, #0
  b .L18106
.L18130:
  ldr r3, .L18134+12
  ldr r2, .L18134+12
  and r3, r0, r3
  cmp r3, r2
  beq .L18129
  mov r3, r0, asl #23
  mov r3, r3, lsr #23
  mov r3, r3, asl #1
  ldrh  r2, [r3, r7]
  ldr r1, .L18134+4
  orr r2, r2, r2, asl #16
  ldr r0, [sp, #4]
  and r1, r2, r1
  mul r0, r1, r0
  ldr lr, [sp, #0]
  ldr r3, .L18134+4
  add r0, lr, r0, lsr #4
  and r3, r0, r3
  orr r3, r3, r3, lsr #16
  strh  r3, [r4, #0]  @ movhi
.L18118:
  add r6, r6, #1
  cmp r8, r6
  beq .L18128
.L18131:
  add r5, r5, #4
  add r4, r4, #2
.L18106:
  ldr r0, [r5, #0]
  tst r0, #512
  bne .L18130
  mov r3, r0, asl #23
  mov r3, r3, lsr #23
  mov r3, r3, asl #1
  ldrh  r3, [r3, r7]
  add r6, r6, #1
  cmp r8, r6
  strh  r3, [r4, #0]  @ movhi
  bne .L18131
.L18128:
  add sp, sp, #20
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L18102:
  subs  r3, r3, r2
  str r3, [sp, #16]
  beq .L18128
  ldr fp, .L18134+8
  add r5, r1, r2, asl #1
  add r0, r0, r2, asl #2
  mov sl, #0
  b .L18121
.L18133:
  ldr r4, .L18134+16
  mov r3, r1, lsr #15
  and r4, r3, r4
  mov r3, r1, asl #23
  mov r3, r3, lsr #23
  mov r7, r3, asl #1
  ldr r3, .L18134+12
  ldr r9, .L18134+4
  mov r2, r1, asl #23
  mov r2, r2, lsr #23
  cmp lr, r3
  mov r2, r2, asl #1
  mov r8, r9
  mov ip, r9
  beq .L18132
  ldrh  r3, [r2, fp]
  ldr r2, [sp, #4]
  orr r3, r3, r3, asl #16
  and ip, r3, r9
  mul r2, ip, r2
  ldr r4, [sp, #0]
  add r2, r4, r2, lsr #4
  and r1, r2, r9
  orr r3, r1, r1, lsr #16
  strh  r3, [r5, #0]  @ movhi
.L18126:
  ldr r6, [sp, #16]
  add sl, sl, #1
  cmp r6, sl
  add r0, r0, #4
  add r5, r5, #2
  beq .L18128
.L18121:
  ldr r1, [r0, #0]
  ldr lr, .L18134+12
  mov r3, r1, asl #23
  mov r3, r3, lsr #23
  tst r1, #512
  and lr, r1, lr
  mov r3, r3, asl #1
  bne .L18133
  ldrh  r3, [r3, fp]
  strh  r3, [r5, #0]  @ movhi
  b .L18126
.L18132:
  ldrh  r3, [r4, fp]
  ldr r1, [sp, #12]
  orr r3, r3, r3, asl #16
  and r9, r3, r9
  ldrh  r2, [r7, fp]
  mul r1, r9, r1
  orr r2, r2, r2, asl #16
  ldr r3, [sp, #8]
  and r8, r2, r8
  mla r3, r8, r3, r1
  mov r3, r3, lsr #4
  and r6, r3, ip
  orr r2, r6, r6, lsr #16
  strh  r2, [r5, #0]  @ movhi
  b .L18126
.L18129:
  ldr r3, .L18134+16
  mov r2, r0, lsr #15
  and r3, r2, r3
  ldrh  r1, [r3, r7]
  mov r0, r0, asl #23
  ldr ip, .L18134+4
  orr r1, r1, r1, asl #16
  mov r0, r0, lsr #23
  ldr lr, [sp, #12]
  and ip, r1, ip
  mov r0, r0, asl #1
  ldrh  r2, [r0, r7]
  mul lr, ip, lr
  ldr r3, .L18134+4
  orr r2, r2, r2, asl #16
  ldr r1, [sp, #8]
  and r3, r2, r3
  mla r1, r3, r1, lr
  ldr r2, .L18134+20
  mov r1, r1, lsr #4
  and r2, r1, r2
  cmp r2, #0
  beq .L18111
  tst r1, #134217728
  orrne r1, r1, #132120576
  tst r1, #65536
  orrne r1, r1, #63488
  tst r1, #32
  orrne r1, r1, #31
.L18111:
  ldr r3, .L18134+4
  and r3, r1, r3
  orr r3, r3, r3, lsr #16
  strh  r3, [r4, #0]  @ movhi
  b .L18118
.L18135:
  .align  2
.L18134:
  .word io_registers
  .word 132184095
  .word palette_ram_converted
  .word 67109376
  .word 1022
  .word 134283296
  .size expand_brighten_partial_alpha, .-expand_brighten_partial_alpha
  .align  2
  .global render_scanline_bitmap
  .type render_scanline_bitmap, %function
render_scanline_bitmap:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr r3, .L18153
  and r2, r1, #7
  ldrh  ip, [r3, #0]
  ldr r3, .L18153+4
  stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
  add sl, r3, r2, asl #2
  mov r4, r0
  mov r3, #0
.L18137:
  strh  ip, [r3, r4]  @ movhi
  add r3, r3, #2
  cmp r3, #480
  bne .L18137
  ldr r8, .L18153+8
  ldr r3, [r8, #0]
  cmp r3, #0
  ldmeqfd sp!, {r4, r5, r6, r7, r8, sl, pc}
  ldr r6, .L18153+12
  and r7, r1, #64
  mov r5, #0
  b .L18141
.L18152:
  bl  render_scanline_obj_normal_1D
.L18146:
  ldr r3, [r8, #0]
  add r5, r5, #1
  cmp r3, r5
  add r6, r6, #4
  bls .L18151
.L18141:
  ldr ip, [r6, #0]
  mov r1, #240
  ands  r0, ip, #4
  mov r2, r4
  beq .L18142
  sub r1, r1, #240
  bic ip, ip, #4
  cmp r7, r1
  mov r2, #240
  mov r3, r4
  mov r0, ip
  bne .L18152
  mov r3, r4
  mov r0, ip
  mov r1, r7
  mov r2, #240
  bl  render_scanline_obj_normal_2D
  ldr r3, [r8, #0]
  add r5, r5, #1
  cmp r3, r5
  add r6, r6, #4
  bhi .L18141
.L18151:
  ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
.L18142:
  mov lr, pc
  ldr pc, [sl, #0]
  b .L18146
.L18154:
  .align  2
.L18153:
  .word palette_ram_converted
  .word bitmap_mode_renderers-12
  .word layer_count
  .word layer_order
  .size render_scanline_bitmap, .-render_scanline_bitmap
  .align  2
  .global render_scanline_conditional_bitmap
  .type render_scanline_conditional_bitmap, %function
render_scanline_conditional_bitmap:
  @ args = 12, pretend = 0, frame = 4
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  mov ip, r3
  ldr r3, .L18173
  cmp r0, r1
  mov r6, r0
  sub sp, sp, #4
  mov r7, r1
  mov r8, r2
  ldrh  r0, [r3, #0]
  bcs .L18156
  add r2, r2, r6, asl #1
  mov r3, #0
  rsb r1, r6, r1
.L18158:
  add r3, r3, #1
  cmp r1, r3
  strh  r0, [r2], #2  @ movhi
  bne .L18158
.L18156:
  ldr fp, .L18173+4
  ldr r3, [fp, #0]
  cmp r3, #0
  beq .L18169
  ldr r3, [sp, #40]
  ldr r5, .L18173+8
  and r3, r3, #64
  and r9, ip, #16
  and sl, ip, #4
  mov r4, #0
  str r3, [sp, #0]
  b .L18161
.L18172:
  cmp r9, #0
  bic ip, r0, #4
  beq .L18164
  ldr lr, [sp, #0]
  mov r0, ip
  cmp lr, #0
  mov r1, r6
  mov r2, r7
  mov r3, r8
  beq .L18166
  bl  render_scanline_obj_normal_1D
.L18164:
  ldr r3, [fp, #0]
  add r4, r4, #1
  cmp r3, r4
  add r5, r5, #4
  bls .L18169
.L18161:
  ldr r0, [r5, #0]
  tst r0, #4
  bne .L18172
  cmp sl, #0
  mov r0, r6
  mov r1, r7
  mov r2, r8
  beq .L18164
  ldr r3, [sp, #48]
  mov lr, pc
  ldr pc, [r3, #0]
  ldr r3, [fp, #0]
  add r4, r4, #1
  cmp r3, r4
  add r5, r5, #4
  bhi .L18161
.L18169:
  add sp, sp, #4
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L18166:
  mov r0, ip
  mov r1, r6
  mov r2, r7
  mov r3, r8
  bl  render_scanline_obj_normal_2D
  b .L18164
.L18174:
  .align  2
.L18173:
  .word palette_ram_converted
  .word layer_count
  .word layer_order
  .size render_scanline_conditional_bitmap, .-render_scanline_conditional_bitmap
  .align  2
  .global set_gba_resolution
  .type set_gba_resolution, %function
set_gba_resolution:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
  ldr r2, .L18180
  @ lr needed for prologue
  ldr r3, [r2, #0]
  cmp r3, r0
  bxeq  lr
  cmp r0, #2
  str r0, [r2, #0]
  bxhi  lr
  ldr r3, .L18180+4
  mov r2, #240
  str r2, [r3, #0]
  ldr r3, .L18180+8
  mov r1, #160
  str r1, [r3, #0]
  bx  lr
.L18181:
  .align  2
.L18180:
  .word screen_scale
  .word small_resolution_width
  .word small_resolution_height
  .size set_gba_resolution, .-set_gba_resolution
  .align  2
  .global clear_screen
  .type clear_screen, %function
clear_screen:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  ldr r3, .L18192
  stmfd sp!, {r4, lr}
  ldr r2, [r3, #0]
  mov r0, r0, asl #16
  ldrh  r3, [r2, #16]
  ldr r1, [r2, #8]
  ldr r4, [r2, #12]
  rsb ip, r1, r3, lsr #1
  ldr r3, [r2, #20]
  cmp r4, #0
  movne lr, ip, asl #1
  mov r0, r0, lsr #16
  movne r2, r3
  movne ip, #0
  ldmeqfd sp!, {r4, pc}
.L18185:
  cmp r1, #0
  movne r3, #0
  beq .L18188
.L18187:
  add r3, r3, #1
  cmp r1, r3
  strh  r0, [r2], #2  @ movhi
  bhi .L18187
.L18188:
  add ip, ip, #1
  cmp r4, ip
  ldmlsfd sp!, {r4, pc}
  add r2, r2, lr
  b .L18185
.L18193:
  .align  2
.L18192:
  .word screen
  .size clear_screen, .-clear_screen
  .align  2
  .global blit_to_screen
  .type blit_to_screen, %function
blit_to_screen:
  @ args = 4, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, lr}
  mov r4, r1
  ldr r1, .L18206
  subs  r7, r2, #0
  ldr ip, [r1, #0]
  mov lr, r3
  ldrh  r2, [ip, #16]
  ldr ip, [ip, #20]
  mov r2, r2, lsr #1
  rsb r1, r4, r2
  ldmeqfd sp!, {r4, r5, r6, r7, r8, pc}
  ldr r3, [sp, #24]
  mov r6, r1, asl #1
  mla r2, r3, r2, lr
  mov r5, r4, asl #1
  add r2, ip, r2, asl #1
  mov r3, #0
.L18197:
  cmp r4, #0
  movne lr, r2
  movne ip, r0
  movne r1, #0
  beq .L18201
.L18199:
  add r1, r1, #1
  ldrh  r8, [ip], #2
  cmp r4, r1
  strh  r8, [lr], #2  @ movhi
  bne .L18199
  add r2, r2, r5
  add r0, r0, r5
.L18201:
  add r3, r3, #1
  cmp r7, r3
  ldmeqfd sp!, {r4, r5, r6, r7, r8, pc}
  add r2, r2, r6
  b .L18197
.L18207:
  .align  2
.L18206:
  .word screen
  .size blit_to_screen, .-blit_to_screen
  .align  2
  .global print_string_ext
  .type print_string_ext, %function
print_string_ext:
  @ args = 16, pretend = 0, frame = 12
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr ip, .L18247
  sub sp, sp, #12
  ldr sl, [sp, #48]
  ldr r4, [ip, #0]
  add lr, sl, #10
  cmp lr, r4
  mov r1, r1, asl #16
  mov r2, r2, asl #16
  mov fp, r0
  mov r9, r3
  mov r4, r1, lsr #16
  mov lr, r2, lsr #16
  ldrb  ip, [r0, #0]  @ zero_extendqisi2
  bcs .L18240
  cmp ip, #0
  beq .L18240
  ldr r2, .L18247+4
  ldr r0, [sp, #56]
  ldr r2, [r2, #0]
  ldr r3, .L18247+8
  mla r0, sl, r0, r9
  ldr r3, [r3, #0]
  str r2, [sp, #0]
  ldr r2, [sp, #56]
  str r3, [sp, #8]
  add r1, r2, r2, asl #2
  ldr r3, [sp, #52]
  mov r1, r1, asl #2
  str r1, [sp, #4]
  add r6, r3, r0, asl #1
  mov r1, r2, asl #1
  mov r5, r9
  mov r7, #0
  mov r8, #1
.L18212:
  cmp ip, #10
  beq .L18246
  ldr r3, .L18247+12
  mov r0, r6
  ldr r2, [r3, ip, asl #2]
  ldr r3, .L18247+16
  mov ip, #0
  add r2, r3, r2, asl #1
.L18216:
  ldrh  r3, [r2, #0]
  add ip, ip, #1
  tst r3, #32768
  streqh  lr, [r0, #0]  @ movhi
  strneh  r4, [r0, #0]  @ movhi
  tst r3, #16384
  streqh  lr, [r0, #2]  @ movhi
  strneh  r4, [r0, #2]  @ movhi
  tst r3, #8192
  streqh  lr, [r0, #4]  @ movhi
  strneh  r4, [r0, #4]  @ movhi
  tst r3, #4096
  streqh  lr, [r0, #6]  @ movhi
  strneh  r4, [r0, #6]  @ movhi
  tst r3, #2048
  streqh  lr, [r0, #8]  @ movhi
  strneh  r4, [r0, #8]  @ movhi
  tst r3, #1024
  strneh  r4, [r0, #10] @ movhi
  streqh  lr, [r0, #10] @ movhi
  cmp ip, #10
  add r0, r0, r1
  add r2, r2, #2
  bne .L18216
  add r3, r1, r6
  add r2, r1, r1, asl #3
  add r3, r3, r2
  ldr r2, [sp, #4]
  add r5, r5, #6
  rsb r3, r2, r3
  add r6, r3, #12
.L18215:
  ldrb  ip, [fp, r8]  @ zero_extendqisi2
  ldr r0, [sp, #60]
  add r7, r7, #1
  cmp r7, r0
  movcs r3, #0
  movcc r3, #1
  cmp ip, #0
  movne r3, #0
  ldr r2, [sp, #8]
  cmp r3, #0
  add r3, r5, #6
  movne ip, #32
  addeq r8, r8, #1
  cmp r3, r2
  bcs .L18240
  cmp ip, #0
  bne .L18212
.L18240:
  add sp, sp, #12
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L18246:
  ldr r2, [sp, #56]
  add sl, sl, #10
  mla r2, sl, r2, r9
  ldr r0, [sp, #0]
  mov r5, r9
  ldr r3, [r0, #20]
  add r6, r3, r2, asl #1
  b .L18215
.L18248:
  .align  2
.L18247:
  .word resolution_height
  .word screen
  .word resolution_width
  .word _font_offset
  .word _font_bits
  .size print_string_ext, .-print_string_ext
  .align  2
  .global debug_screen_clear
  .type debug_screen_clear, %function
debug_screen_clear:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
  @ lr needed for prologue
  bx  lr
  .size debug_screen_clear, .-debug_screen_clear
  .align  2
  .global debug_screen_start
  .type debug_screen_start, %function
debug_screen_start:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
  @ lr needed for prologue
  bx  lr
  .size debug_screen_start, .-debug_screen_start
  .align  2
  .global debug_screen_end
  .type debug_screen_end, %function
debug_screen_end:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
  @ lr needed for prologue
  bx  lr
  .size debug_screen_end, .-debug_screen_end
  .align  2
  .global debug_screen_update
  .type debug_screen_update, %function
debug_screen_update:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
  @ lr needed for prologue
  bx  lr
  .size debug_screen_update, .-debug_screen_update
  .align  2
  .global video_write_mem_savestate
  .type video_write_mem_savestate, %function
video_write_mem_savestate:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, lr}
  ldr r4, .L18259
  ldr r1, .L18259+4
  mov r2, #8
  ldr r0, [r4, #0]
  bl  memcpy
  ldr r3, [r4, #0]
  ldr r1, .L18259+8
  add r3, r3, #8
  mov r0, r3
  mov r2, #8
  str r3, [r4, #0]
  bl  memcpy
  ldr r3, [r4, #0]
  add r3, r3, #8
  str r3, [r4, #0]
  ldmfd sp!, {r4, pc}
.L18260:
  .align  2
.L18259:
  .word write_mem_ptr
  .word affine_reference_x
  .word affine_reference_y
  .size video_write_mem_savestate, .-video_write_mem_savestate
  .align  2
  .global video_read_savestate
  .type video_read_savestate, %function
video_read_savestate:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, lr}
  mov r3, r0
  mov r4, r0
  mov r1, #8
  mov r2, #1
  ldr r0, .L18263
  bl  fread
  ldr r0, .L18263+4
  mov r3, r4
  mov r1, #8
  mov r2, #1
  ldmfd sp!, {r4, lr}
  b fread
.L18264:
  .align  2
.L18263:
  .word affine_reference_x
  .word affine_reference_y
  .size video_read_savestate, .-video_read_savestate
  .section  .rodata.str1.4,"aMS",%progbits,1
  .align  2
.LC0:
  .ascii  "\012\000"
  .text
  .align  2
  .global debug_screen_newline
  .type debug_screen_newline, %function
debug_screen_newline:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
  ldr r3, .L18267
  ldr r1, .L18267+4
  ldr r0, [r3, #0]
  @ lr needed for prologue
  b fprintf
.L18268:
  .align  2
.L18267:
  .word stderr
  .word .LC0
  .size debug_screen_newline, .-debug_screen_newline
  .align  2
  .global debug_screen_printf
  .type debug_screen_printf, %function
debug_screen_printf:
  @ args = 4, pretend = 16, frame = 4
  @ frame_needed = 0, uses_anonymous_args = 1
  stmfd sp!, {r0, r1, r2, r3}
  str lr, [sp, #-4]!
  ldr r3, .L18271
  sub sp, sp, #4
  add ip, sp, #12
  ldr r0, [r3, #0]
  mov r2, ip
  ldr r1, [sp, #8]
  str ip, [sp, #0]
  bl  vfprintf
  add sp, sp, #4
  ldr lr, [sp], #4
  add sp, sp, #16
  bx  lr
.L18272:
  .align  2
.L18271:
  .word stderr
  .size debug_screen_printf, .-debug_screen_printf
  .align  2
  .global debug_screen_printl
  .type debug_screen_printl, %function
debug_screen_printl:
  @ args = 4, pretend = 16, frame = 4
  @ frame_needed = 0, uses_anonymous_args = 1
  stmfd sp!, {r0, r1, r2, r3}
  str lr, [sp, #-4]!
  sub sp, sp, #4
  add r3, sp, #12
  ldr r0, [sp, #8]
  mov r1, r3
  str r3, [sp, #0]
  bl  debug_screen_printf
  ldr r0, .L18275
  bl  debug_screen_printf
  add sp, sp, #4
  ldr lr, [sp], #4
  add sp, sp, #16
  bx  lr
.L18276:
  .align  2
.L18275:
  .word .LC0
  .size debug_screen_printl, .-debug_screen_printl
  .align  2
  .global copy_screen
  .type copy_screen, %function
copy_screen:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, lr}
  mov r0, #76800
  bl  malloc
  ldr r3, .L18279
  mov r2, #76800
  ldr ip, [r3, #0]
  mov r4, r0
  ldr r1, [ip, #20]
  bl  memcpy
  mov r0, r4
  ldmfd sp!, {r4, pc}
.L18280:
  .align  2
.L18279:
  .word screen
  .size copy_screen, .-copy_screen
  .align  2
  .global video_resolution_small
  .type video_resolution_small, %function
video_resolution_small:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, lr}
  ldr r4, .L18286
  ldr r3, .L18286+4
  ldr r2, [r4, #0]
  ldr r7, .L18286+8
  sub sp, sp, #16
  str r2, [r3, #0]
  ldr r0, [r7, #0]
  bl  SDL_FreeSurface
  mov r0, #0
  mov r1, r0
  bl  SDL_GP2X_AllowGfxMemory
  ldr r3, [r4, #0]
  ldr r6, .L18286+12
  ldr r5, .L18286+16
  cmp r3, #0
  mov r1, #320
  mov r0, r1
  mov r2, #16
  ldrne r1, [r5, #0]
  ldrne r0, [r6, #0]
  mov r3, #1
  bl  SDL_SetVideoMode
  ldr r3, .L18286+20
  ldr ip, .L18286+24
  str r0, [r3, #0]
  ldr r1, [r6, #0]
  ldr r2, [r5, #0]
  mov r3, #16
  mov r4, #0
  mov r0, #1
  str ip, [sp, #8]
  str ip, [sp, #0]
  str ip, [sp, #4]
  str r4, [sp, #12]
  bl  SDL_CreateRGBSurface
  str r0, [r7, #0]
  mov r0, r4
  bl  SDL_ShowCursor
  bl  gp2x_load_mmuhack
  ldr r1, [r6, #0]
  ldr r0, [r5, #0]
  ldr r3, .L18286+28
  ldr r2, .L18286+32
  str r1, [r3, #0]
  str r0, [r2, #0]
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, r7, pc}
.L18287:
  .align  2
.L18286:
  .word screen_scale
  .word current_scale
  .word screen
  .word small_resolution_width
  .word small_resolution_height
  .word hw_screen
  .word 65535
  .word resolution_width
  .word resolution_height
  .size video_resolution_small, .-video_resolution_small
  .align  2
  .global video_resolution_large
  .type video_resolution_large, %function
video_resolution_large:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, lr}
  ldr r3, .L18290
  ldr r5, .L18290+4
  mov r4, #0
  sub sp, sp, #16
  str r4, [r3, #0]
  ldr r0, [r5, #0]
  bl  SDL_FreeSurface
  mov r0, r4
  mov r1, r4
  bl  SDL_GP2X_AllowGfxMemory
  mov r1, #240
  mov r2, #16
  mov r3, #1
  mov r0, #320
  bl  SDL_SetVideoMode
  ldr r3, .L18290+8
  ldr ip, .L18290+12
  str r0, [r3, #0]
  mov r1, #320
  mov r2, #240
  mov r3, #16
  mov r0, #1
  str ip, [sp, #8]
  str ip, [sp, #0]
  str ip, [sp, #4]
  str r4, [sp, #12]
  bl  SDL_CreateRGBSurface
  ldr r3, .L18290+16
  mov r2, #320
  str r2, [r3, #0]
  ldr r3, .L18290+20
  mov r1, #240
  str r0, [r5, #0]
  str r1, [r3, #0]
  mov r0, r4
  bl  SDL_ShowCursor
  add sp, sp, #16
  ldmfd sp!, {r4, r5, lr}
  b gp2x_load_mmuhack
.L18291:
  .align  2
.L18290:
  .word current_scale
  .word screen
  .word hw_screen
  .word 65535
  .word resolution_width
  .word resolution_height
  .size video_resolution_large, .-video_resolution_large
  .align  2
  .global init_video
  .type init_video, %function
init_video:
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, lr}
  ldr r0, .L18294
  sub sp, sp, #16
  bl  SDL_Init
  mov r0, #0
  mov r1, r0
  bl  SDL_GP2X_AllowGfxMemory
  mov r1, #240
  mov r2, #16
  mov r3, #1
  mov r0, #320
  bl  SDL_SetVideoMode
  ldr r3, .L18294+4
  ldr ip, .L18294+8
  str r0, [r3, #0]
  mov r4, #0
  mov r1, #240
  mov r2, #160
  mov r3, #16
  mov r0, #1
  str ip, [sp, #8]
  str ip, [sp, #0]
  str ip, [sp, #4]
  str r4, [sp, #12]
  bl  SDL_CreateRGBSurface
  ldr r3, .L18294+12
  str r0, [r3, #0]
  bl  gp2x_load_mmuhack
  mov r0, r4
  add sp, sp, #16
  ldmfd sp!, {r4, lr}
  b SDL_ShowCursor
.L18295:
  .align  2
.L18294:
  .word 1049120
  .word hw_screen
  .word 65535
  .word screen
  .size init_video, .-init_video
  .align  2
  .global flip_screen
  .type flip_screen, %function
flip_screen:
  @ args = 0, pretend = 0, frame = 16
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, lr}
  ldr r2, .L18304
  mov r1, #0
  ldr r0, [r2, #0]
  sub sp, sp, #16
  cmp r0, r1
  mov r3, r1
  bne .L18297
  ldr r2, .L18304+4
  ldr r0, .L18304+8
  ldr ip, [r2, #0]
  ldr r2, [r0, #0]
  cmp ip, r2
  beq .L18303
.L18297:
  ldr r2, .L18304+12
  ldr ip, .L18304+16
  ldr r0, [r2, #0]
  ldr r2, [ip, #0]
  bl  SDL_UpperBlit
.L18302:
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, pc}
.L18303:
  ldr r2, .L18304+20
  ldr r0, .L18304+24
  ldr ip, [r2, #0]
  ldr r2, [r0, #0]
  cmp ip, r2
  bne .L18297
  ldr ip, .L18304+28
  ldr r3, .L18304+12
  ldr r1, .L18304+16
  ldmia ip, {r4-r5}
  str r4, [sp, #8]
  str r5, [sp, #12]
  ldr r4, .L18304+32
  ldr r2, [r1, #0]
  ldr r0, [r3, #0]
  add r1, sp, #8
  mov r3, sp
  ldmia r4, {r5-r6}
  stmia sp, {r5-r6}
  bl  SDL_UpperBlit
  b .L18302
.L18305:
  .align  2
.L18304:
  .word screen_scale
  .word resolution_width
  .word small_resolution_width
  .word screen
  .word hw_screen
  .word resolution_height
  .word small_resolution_height
  .word C.626.17650
  .word C.627.17651
  .size flip_screen, .-flip_screen
  .align  2
  .global update_screen
  .type update_screen, %function
update_screen:
  @ args = 0, pretend = 0, frame = 16
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, lr}
  ldr r2, .L18315
  mov r1, #0
  ldr r0, [r2, #0]
  sub sp, sp, #16
  cmp r0, r1
  mov r3, r1
  bne .L18313
  ldr r2, .L18315+4
  ldr r0, [r2, #0]
  cmp r0, r1
  bne .L18309
  ldr r2, .L18315+8
  ldr r0, .L18315+12
  ldr ip, [r2, #0]
  ldr r2, [r0, #0]
  cmp ip, r2
  beq .L18314
.L18309:
  ldr r2, .L18315+16
  ldr ip, .L18315+20
  ldr r0, [r2, #0]
  ldr r2, [ip, #0]
  bl  SDL_UpperBlit
.L18313:
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, pc}
.L18314:
  ldr r2, .L18315+24
  ldr r0, .L18315+28
  ldr ip, [r2, #0]
  ldr r2, [r0, #0]
  cmp ip, r2
  bne .L18309
  ldr ip, .L18315+32
  ldr r3, .L18315+16
  ldr r1, .L18315+20
  ldmia ip, {r4-r5}
  str r4, [sp, #8]
  str r5, [sp, #12]
  ldr r4, .L18315+36
  ldr r2, [r1, #0]
  ldr r0, [r3, #0]
  add r1, sp, #8
  mov r3, sp
  ldmia r4, {r5-r6}
  stmia sp, {r5-r6}
  bl  SDL_UpperBlit
  b .L18313
.L18316:
  .align  2
.L18315:
  .word skip_next_frame
  .word screen_scale
  .word resolution_width
  .word small_resolution_width
  .word screen
  .word hw_screen
  .word resolution_height
  .word small_resolution_height
  .word C.626.17650
  .word C.627.17651
  .size update_screen, .-update_screen
  .align  2
  .global render_scanline_conditional_tile
  .type render_scanline_conditional_tile, %function
render_scanline_conditional_tile:
  @ args = 12, pretend = 0, frame = 976
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r9, .L18810
  sub sp, sp, #976
  ldr lr, [r9, #0]
  mov r6, r0
  cmp lr, #0
  mov r8, r1
  mov sl, r2
  mov r7, r3
  ldr fp, [sp, #1012]
  ldr r0, [sp, #1016]
  beq .L18318
  tst r3, #31
  bne .L18774
.L18318:
  mov r3, r0, lsr #6
  and r2, r3, #3
  ldr r3, .L18810+4
  cmp r2, #2
  ldrh  ip, [r3, #0]
  beq .L18660
  cmp r2, #3
  beq .L18775
.L18659:
  mov r3, ip, asl #16
  cmp r6, r8
  mov r3, r3, lsr #16
  bcs .L18666
  rsb r1, r6, r8
  add r0, sl, r6, asl #1
  mov ip, #0
.L18665:
  add ip, ip, #1
  cmp ip, r1
  strh  r3, [r0], #2  @ movhi
  bne .L18665
.L18666:
  add sp, sp, #976
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L18774:
  ldr r1, .L18810+8
  ldr r2, .L18810+12
  ldrh  r3, [r1, #6]
  ldr r1, [r2, r3, asl #2]
  cmp r1, #0
  bne .L18776
.L18454:
  mov r3, r0, lsr #6
  and r3, r3, #3
  cmp r3, #2
  beq .L18488
  cmp r3, #3
  beq .L18489
  cmp r3, #1
  beq .L18777
.L18486:
  ldr r1, .L18810+24
  ands  r3, r7, #16
  ldr ip, [r1, #0]
  moveq r4, r3
  ldreq r2, .L18810+24
  beq .L18626
  ldr r2, .L18810+24
  mov r4, #0
.L18638:
  tst ip, #4
  mov r3, #1
  bne .L18642
  ands  r5, r7, r3, asl ip
  bne .L18778
  add r4, r4, #1
  cmp lr, r4
  ldr ip, [r2, #4]!
  bne .L18638
  ldr r3, .L18810+4
  cmp r6, r8
  ldrh  r3, [r3, #0]
  bcs .L18666
  rsb r1, r6, r8
  add r0, sl, r6, asl #1
  mov ip, r5
.L18641:
  add ip, ip, #1
  cmp ip, r1
  strh  r3, [r0], #2  @ movhi
  bne .L18641
  b .L18666
.L18660:
  ldr r2, .L18810+8
  ldrh  r3, [r2, #80]
  tst r3, #32
  beq .L18659
  ldrh  r3, [r2, #84]
  ldr r1, .L18810+16
  and r3, r3, #31
  cmp r3, #16
  movcs r3, #16
  orr r2, ip, ip, asl #16
  and r1, r2, r1
  rsb r0, r3, #16
  rsb r2, r3, r3, asl #6
  mul ip, r1, r0
  add r3, r3, r2, asl #5
  rsb r3, r3, r3, asl #16
  ldr r1, .L18810+16
  mov r3, r3, lsr #4
  and r1, r3, r1
  ldr r2, .L18810+16
  add r1, r1, ip, lsr #4
  and r2, r1, r2
  orr ip, r2, r2, lsr #16
  b .L18659
.L18775:
  ldr r2, .L18810+8
  ldrh  r3, [r2, #80]
  tst r3, #32
  beq .L18659
  ldrh  r3, [r2, #84]
  ldr r0, .L18810+16
  and r3, r3, #31
  orr r2, ip, ip, asl #16
  rsb r3, r3, #16
  and r0, r2, r0
  cmp r3, #0
  movlt r3, #0
  mul r1, r3, r0
  ldr r2, .L18810+16
  mov r1, r1, lsr #4
  and r2, r1, r2
  orr ip, r2, r2, lsr #16
  b .L18659
.L18776:
  mov r3, r0, lsr #6
  and r3, r3, #3
  cmp r3, #2
  beq .L18325
  cmp r3, #3
  beq .L18326
  cmp r3, #1
  beq .L18779
.L18323:
  ldr r5, .L18810+24
  ands  r3, r7, #16
  ldr r2, [r5, #0]
  moveq r4, r3
  ldreq r1, .L18810+24
  beq .L18452
  ldr r1, .L18810+24
  mov r4, #0
.L18465:
  tst r2, #4
  mov r3, #1
  bne .L18780
  ands  r3, r7, r3, asl r2
  bne .L18781
  add r4, r4, #1
  cmp lr, r4
  ldr r2, [r1, #4]!
  bne .L18465
  cmp r6, r8
  bcs .L18499
  add r5, sp, #16
  add r2, r5, r6, asl #2
  rsb r1, r6, r8
  mov r0, r3
.L18468:
  add r3, r3, #1
  cmp r1, r3
  str r0, [r2], #4
  bne .L18468
.L18499:
  add r0, sp, #16
  mov r1, sl
  mov r2, r6
  mov r3, r8
  bl  expand_blend
  b .L18666
.L18452:
  tst r2, #4
  bne .L18451
  mov r3, #1
  ands  r3, r7, r3, asl r2
  bne .L18782
.L18451:
  add r4, r4, #1
  cmp lr, r4
  ldr r2, [r1, #4]!
  bne .L18452
  cmp r6, r8
  bcs .L18499
  add r0, sp, #16
  mov r3, #0
  add r2, r0, r6, asl #2
  rsb r1, r6, r8
  mov r0, r3
.L18456:
  add r3, r3, #1
  cmp r3, r1
  str r0, [r2], #4
  bne .L18456
  b .L18499
.L18626:
  tst ip, #4
  bne .L18625
  mov r3, #1
  ands  r3, r7, r3, asl ip
  bne .L18783
.L18625:
  add r4, r4, #1
  cmp lr, r4
  ldr ip, [r2, #4]!
  bne .L18626
  ldr r3, .L18810+4
  cmp r6, r8
  ldrh  r3, [r3, #0]
  bcs .L18666
  rsb r1, r6, r8
  add r0, sl, r6, asl #1
  mov ip, #0
.L18629:
  add ip, ip, #1
  cmp ip, r1
  strh  r3, [r0], #2  @ movhi
  bne .L18629
  b .L18666
.L18777:
  tst r7, #32
  beq .L18486
  ldr r5, .L18810+8
  ldr r3, .L18810+20
  ldrh  r2, [r5, #82]
  and r3, r2, r3
  cmp r3, #31
  beq .L18486
  ldrh  r3, [r5, #80]
  tst r3, #63
  beq .L18486
  tst r3, #16128
  beq .L18486
  ldr r0, .L18810+24
  ands  r3, r7, #16
  ldr r2, [r0, #0]
  moveq r4, r3
  ldreq r1, .L18810+24
  beq .L18497
  ldr r1, .L18810+24
  mov r5, #0
.L18510:
  tst r2, #4
  mov r3, #1
  bne .L18784
  ands  r3, r7, r3, asl r2
  bne .L18785
  add r5, r5, #1
  cmp lr, r5
  ldr r2, [r1, #4]!
  bne .L18510
  cmp r6, r8
  bcs .L18499
  add r5, sp, #16
  add r2, r5, r6, asl #2
  rsb r1, r6, r8
  mov r0, r3
.L18513:
  add r3, r3, #1
  cmp r1, r3
  str r0, [r2], #4
  bne .L18513
  b .L18499
.L18779:
  tst r7, #32
  beq .L18323
  ldr r3, .L18810+8
  ldrh  r2, [r3, #82]
  ldr r3, .L18810+20
  and r3, r2, r3
  cmp r3, #31
  beq .L18323
  ldr r5, .L18810+8
  ldrh  r3, [r5, #80]
  tst r3, #63
  beq .L18323
  tst r3, #16128
  beq .L18323
  ldr r0, .L18810+24
  ands  r3, r7, #16
  ldr r2, [r0, #0]
  moveq r4, r3
  ldreq r1, .L18810+24
  beq .L18334
  ldr r1, .L18810+24
  mov r5, #0
.L18347:
  tst r2, #4
  mov r3, #1
  bne .L18786
  ands  r3, r7, r3, asl r2
  bne .L18787
  add r5, r5, #1
  cmp lr, r5
  ldr r2, [r1, #4]!
  bne .L18347
  cmp r6, r8
  bcs .L18499
  add r5, sp, #16
  add r2, r5, r6, asl #2
  rsb r1, r6, r8
  mov r0, r3
.L18350:
  add r3, r3, #1
  cmp r3, r1
  str r0, [r2], #4
  bne .L18350
  b .L18499
.L18497:
  tst r2, #4
  bne .L18496
  mov r3, #1
  ands  r3, r7, r3, asl r2
  bne .L18788
.L18496:
  add r4, r4, #1
  cmp lr, r4
  ldr r2, [r1, #4]!
  bne .L18497
  cmp r6, r8
  bcs .L18499
  add r1, sp, #16
  mov r3, #0
  add r2, r1, r6, asl #2
  mov r0, r3
  rsb r1, r6, r8
.L18501:
  add r3, r3, #1
  cmp r3, r1
  str r0, [r2], #4
  bne .L18501
  b .L18499
.L18334:
  tst r2, #4
  bne .L18333
  mov r3, #1
  ands  r3, r7, r3, asl r2
  bne .L18789
.L18333:
  add r4, r4, #1
  cmp lr, r4
  ldr r2, [r1, #4]!
  bne .L18334
  cmp r6, r8
  bcs .L18499
  add r1, sp, #16
  mov r3, #0
  add r2, r1, r6, asl #2
  mov r0, r3
  rsb r1, r6, r8
.L18338:
  add r3, r3, #1
  cmp r3, r1
  str r0, [r2], #4
  bne .L18338
  b .L18499
.L18488:
  tst r7, #32
  beq .L18486
  ldr r5, .L18810+8
  ldrh  r3, [r5, #84]
  tst r3, #31
  beq .L18486
  ldrh  r3, [r5, #80]
  tst r3, #63
  beq .L18486
  ldr r0, .L18810+24
  ands  r3, r7, #16
  ldr r2, [r0, #0]
  moveq r4, r3
  ldreq r1, .L18810+24
  beq .L18537
  mov r3, #0
  ldr r1, .L18810+24
  str r3, [sp, #8]
.L18550:
  tst r2, #4
  mov r3, #1
  bne .L18790
  ands  r3, r7, r3, asl r2
  bne .L18791
  ldr r2, [sp, #8]
  add r2, r2, #1
  cmp lr, r2
  str r2, [sp, #8]
  ldr r2, [r1, #4]!
  bne .L18550
  cmp r6, r8
  bcs .L18679
  mov r2, r3
  rsb r5, r6, r8
  add r3, sl, r6, asl #1
.L18553:
  add r2, r2, #1
  mov r0, #0  @ movhi
  cmp r5, r2
  strh  r0, [r3], #2  @ movhi
  bne .L18553
.L18539:
  ldr r3, .L18810+8
  ldr r8, .L18810+16
  ldrh  r2, [r3, #84]
  and r2, r2, #31
  cmp r2, #16
  movcs r2, #16
  rsb r3, r2, r2, asl #6
  add r3, r2, r3, asl #5
  rsb r3, r3, r3, asl #16
  mov r3, r3, lsr #4
  cmp r5, #0
  and r8, r3, r8
  rsb r7, r2, #16
  beq .L18666
  ldr r9, .L18810+4
  add r0, sl, r6, asl #1
  mov r4, #0
.L18572:
  ldrh  r3, [r0, #0]
  ldr lr, .L18810+16
  mov r2, r3, asl #23
  mov r2, r2, lsr #23
  tst r3, #512
  mov r2, r2, asl #1
  mov r1, r3, asl #23
  ldrneh  r3, [r2, r9]
  mov ip, lr
  orrne r3, r3, r3, asl #16
  andne lr, r3, lr
  mulne r2, lr, r7
  mov r1, r1, lsr #23
  mov r1, r1, asl #1
  addne r2, r8, r2, lsr #4
  andne ip, r2, ip
  ldreqh  r1, [r1, r9]
  orrne r3, ip, ip, lsr #16
  add r4, r4, #1
  strneh  r3, [r0, #0]  @ movhi
  streqh  r1, [r0, #0]  @ movhi
  cmp r5, r4
  add r0, r0, #2
  bne .L18572
  b .L18666
.L18537:
  tst r2, #4
  bne .L18536
  mov r3, #1
  ands  r3, r7, r3, asl r2
  bne .L18792
.L18536:
  add r4, r4, #1
  cmp lr, r4
  ldr r2, [r1, #4]!
  bne .L18537
  cmp r6, r8
  bcs .L18679
  rsb r5, r6, r8
  add r2, sl, r6, asl #1
  mov r3, #0
.L18541:
  add r3, r3, #1
  mov r1, #0  @ movhi
  cmp r3, r5
  strh  r1, [r2], #2  @ movhi
  bne .L18541
  b .L18539
.L18336:
.L18325:
  tst r7, #32
  beq .L18323
  ldr r5, .L18810+8
  ldrh  r3, [r5, #84]
  tst r3, #31
  beq .L18323
  ldrh  r3, [r5, #80]
  tst r3, #63
  beq .L18323
  ldr r0, .L18810+24
  ands  r3, r7, #16
  ldr r2, [r0, #0]
  moveq r4, r3
  ldreq r1, .L18810+24
  beq .L18375
  ldr r1, .L18810+24
  mov r5, #0
.L18388:
  tst r2, #4
  mov r3, #1
  bne .L18793
  ands  r3, r7, r3, asl r2
  bne .L18794
  add r5, r5, #1
  cmp lr, r5
  ldr r2, [r1, #4]!
  bne .L18388
  cmp r6, r8
  bcs .L18377
  add r5, sp, #16
  add r2, r5, r6, asl #2
  rsb r1, r6, r8
  mov r0, r3
.L18391:
  add r3, r3, #1
  cmp r1, r3
  str r0, [r2], #4
  bne .L18391
.L18377:
  add r0, sp, #16
  mov r1, sl
  mov r2, r6
  mov r3, r8
  bl  expand_brighten_partial_alpha
  b .L18666
.L18375:
  tst r2, #4
  bne .L18374
  mov r3, #1
  ands  r3, r7, r3, asl r2
  bne .L18795
.L18374:
  add r4, r4, #1
  cmp lr, r4
  ldr r2, [r1, #4]!
  bne .L18375
  cmp r6, r8
  bcs .L18377
  add r1, sp, #16
  mov r3, #0
  add r2, r1, r6, asl #2
  mov r0, r3
  rsb r1, r6, r8
.L18379:
  add r3, r3, #1
  cmp r1, r3
  str r0, [r2], #4
  bne .L18379
  b .L18377
.L18489:
  tst r7, #32
  beq .L18486
  ldr r5, .L18810+8
  ldrh  r3, [r5, #84]
  tst r3, #31
  beq .L18486
  ldrh  r2, [r5, #80]
  tst r2, #63
  beq .L18486
  ldr r0, .L18810+24
  ands  r3, r7, #16
  ldr r2, [r0, #0]
  moveq r4, r3
  ldreq r1, .L18810+24
  beq .L18583
  mov r3, #0
  ldr r1, .L18810+24
  str r3, [sp, #12]
.L18596:
  tst r2, #4
  mov r3, #1
  bne .L18796
  ands  r3, r7, r3, asl r2
  bne .L18797
  ldr r2, [sp, #12]
  add r2, r2, #1
  cmp lr, r2
  str r2, [sp, #12]
  ldr r2, [r1, #4]!
  bne .L18596
  cmp r6, r8
  bcs .L18682
  mov r2, r3
  rsb r5, r6, r8
  add r3, sl, r6, asl #1
.L18599:
  add r2, r2, #1
  mov r0, #0  @ movhi
  cmp r5, r2
  strh  r0, [r3], #2  @ movhi
  bne .L18599
.L18585:
  ldr r0, .L18810+8
  ldrh  r3, [r0, #84]
  and r3, r3, #31
  rsb r3, r3, #16
  cmp r3, #0
  movge r7, r3
  movlt r7, #0
  cmp r5, #0
  beq .L18666
  ldr r8, .L18810+4
  add r0, sl, r6, asl #1
  mov r4, #0
.L18618:
  ldrh  r3, [r0, #0]
  ldr lr, .L18810+16
  mov r2, r3, asl #23
  mov r2, r2, lsr #23
  tst r3, #512
  mov r2, r2, asl #1
  mov r1, r3, asl #23
  ldrneh  r3, [r2, r8]
  mov ip, lr
  orrne r3, r3, r3, asl #16
  andne lr, r3, lr
  mulne r2, r7, lr
  mov r1, r1, lsr #23
  mov r1, r1, asl #1
  movne r2, r2, lsr #4
  andne ip, r2, ip
  ldreqh  r1, [r1, r8]
  orrne r3, ip, ip, lsr #16
  add r4, r4, #1
  strneh  r3, [r0, #0]  @ movhi
  streqh  r1, [r0, #0]  @ movhi
  cmp r5, r4
  add r0, r0, #2
  bne .L18618
  b .L18666
.L18583:
  tst r2, #4
  bne .L18582
  mov r3, #1
  ands  r3, r7, r3, asl r2
  bne .L18798
.L18582:
  add r4, r4, #1
  cmp lr, r4
  ldr r2, [r1, #4]!
  bne .L18583
  cmp r6, r8
  bcs .L18682
  rsb r5, r6, r8
  add r2, sl, r6, asl #1
  mov r3, #0
.L18587:
  add r3, r3, #1
  mov r1, #0  @ movhi
  cmp r5, r3
  strh  r1, [r2], #2  @ movhi
  bne .L18587
  b .L18585
.L18326:
  tst r7, #32
  beq .L18323
  ldr r5, .L18810+8
  ldrh  r3, [r5, #84]
  tst r3, #31
  beq .L18323
  ldrh  r3, [r5, #80]
  tst r3, #63
  beq .L18323
  ldr r0, .L18810+24
  ands  r3, r7, #16
  ldr r2, [r0, #0]
  moveq r4, r3
  ldreq r1, .L18810+24
  beq .L18415
  ldr r1, .L18810+24
  mov r5, #0
.L18428:
  tst r2, #4
  mov r3, #1
  bne .L18799
  ands  r3, r7, r3, asl r2
  bne .L18800
  add r5, r5, #1
  cmp lr, r5
  ldr r2, [r1, #4]!
  bne .L18428
  cmp r6, r8
  bcs .L18417
  add r5, sp, #16
  add r2, r5, r6, asl #2
  rsb r1, r6, r8
  mov r0, r3
.L18431:
  add r3, r3, #1
  cmp r3, r1
  str r0, [r2], #4
  bne .L18431
.L18417:
  add r0, sp, #16
  mov r1, sl
  mov r2, r6
  mov r3, r8
  bl  expand_darken_partial_alpha
  b .L18666
.L18415:
  tst r2, #4
  bne .L18414
  mov r3, #1
  ands  r3, r7, r3, asl r2
  bne .L18801
.L18414:
  add r4, r4, #1
  cmp lr, r4
  ldr r2, [r1, #4]!
  bne .L18415
  cmp r6, r8
  bcs .L18417
  add r1, sp, #16
  mov r3, #0
  add r2, r1, r6, asl #2
  mov r0, r3
  rsb r1, r6, r8
.L18419:
  add r3, r3, #1
  cmp r1, r3
  str r0, [r2], #4
  bne .L18419
  b .L18417
.L18780:
  cmp r6, r8
  addcc r0, sp, #16
  movcc r3, #0
  addcc r1, r0, r6, asl #2
  movcc ip, r3
  rsbcc r0, r6, r8
  bcs .L18472
.L18474:
  add r3, r3, #1
  cmp r3, r0
  str ip, [r1], #4
  bne .L18474
.L18472:
  tst fp, #64
  bic r0, r2, #4
  beq .L18475
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_partial_alpha_1D
.L18477:
  ldr r3, [r9, #0]
  add r5, r4, #1
  cmp r5, r3
  bcs .L18499
  ldr r2, .L18810+24
  and fp, fp, #64
  add r4, r2, r4, asl #2
  b .L18479
.L18802:
  bic ip, ip, #4
  cmp fp, #0
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  mov r0, ip
  beq .L18482
  bl  render_scanline_obj_partial_alpha_1D
.L18484:
  ldr r3, [r9, #0]
  add r5, r5, #1
  cmp r3, r5
  add r4, r4, #4
  bls .L18499
.L18479:
  ldr ip, [r4, #4]
  tst ip, #4
  bne .L18802
  mov r3, #1
  ands  r3, r7, r3, asl ip
  ldr r3, [sp, #1020]
  mov r0, ip
  mov r1, r6
  add ip, r3, ip, asl #5
  mov r2, r8
  add r3, sp, #16
  beq .L18484
  mov lr, pc
  ldr pc, [ip, #28]
  b .L18484
.L18482:
  mov r0, ip
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_partial_alpha_2D
  b .L18484
.L18642:
  ldr r3, .L18810+4
  cmp r6, r8
  ldrh  r0, [r3, #0]
  bcs .L18645
  add r2, sl, r6, asl #1
  mov r3, #0
  rsb r1, r6, r8
.L18647:
  add r3, r3, #1
  cmp r3, r1
  strh  r0, [r2], #2  @ movhi
  bne .L18647
.L18645:
  tst fp, #64
  bic r0, ip, #4
  beq .L18648
  mov r1, r6
  mov r2, r8
  mov r3, sl
  bl  render_scanline_obj_normal_1D
.L18650:
  ldr r3, [r9, #0]
  add r5, r4, #1
  cmp r5, r3
  bcs .L18666
  ldr r0, .L18810+24
  and fp, fp, #64
  add r4, r0, r4, asl #2
  b .L18652
.L18803:
  bic ip, ip, #4
  cmp fp, #0
  mov r1, r6
  mov r2, r8
  mov r3, sl
  mov r0, ip
  beq .L18655
  bl  render_scanline_obj_normal_1D
.L18657:
  ldr r3, [r9, #0]
  add r5, r5, #1
  cmp r3, r5
  add r4, r4, #4
  bls .L18666
.L18652:
  ldr ip, [r4, #4]
  tst ip, #4
  bne .L18803
  mov r3, #1
  ands  r3, r7, r3, asl ip
  ldr r1, [sp, #1020]
  mov r0, ip
  mov r2, r8
  add ip, r1, ip, asl #5
  mov r3, sl
  mov r1, r6
  beq .L18657
  mov lr, pc
  ldr pc, [ip, #4]
  b .L18657
.L18655:
  mov r0, ip
  mov r1, r6
  mov r2, r8
  mov r3, sl
  bl  render_scanline_obj_normal_2D
  b .L18657
.L18783:
  mov r3, sl
  ldr r5, [sp, #1020]
  mov r0, ip
  mov r1, r6
  mov r2, r8
  mov lr, pc
  ldr pc, [r5, ip, asl #5]
  ldr r3, [r9, #0]
  add r5, r4, #1
  cmp r5, r3
  bcs .L18666
  ldr r0, .L18810+24
  add r4, r0, r4, asl #2
  b .L18633
.L18634:
  ldr r3, [r9, #0]
  add r4, r4, #4
  cmp r3, r5
  bls .L18666
.L18633:
  ldr r2, [r4, #4]
  add r5, r5, #1
  tst r2, #4
  bne .L18634
  mov r3, #1
  ands  r3, r7, r3, asl r2
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  mov r3, sl
  mov r1, r6
  mov r2, r8
  beq .L18634
  mov lr, pc
  ldr pc, [ip, #4]
  b .L18634
.L18781:
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  add r3, sp, #16
  mov r1, r6
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #24]
  b .L18477
.L18778:
  mov r0, ip
  mov r1, r6
  mov r2, r8
  mov r3, sl
  ldr r5, [sp, #1020]
  mov lr, pc
  ldr pc, [r5, ip, asl #5]
  b .L18650
.L18782:
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  add r3, sp, #16
  mov r1, r6
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #24]
  ldr r3, [r9, #0]
  add r5, r4, #1
  cmp r5, r3
  bcs .L18499
  ldr r2, .L18810+24
  add r4, r2, r4, asl #2
  b .L18460
.L18461:
  ldr r3, [r9, #0]
  add r4, r4, #4
  cmp r3, r5
  bls .L18499
.L18460:
  ldr r2, [r4, #4]
  add r5, r5, #1
  tst r2, #4
  bne .L18461
  mov r3, #1
  ands  r3, r7, r3, asl r2
  ldr r3, [sp, #1020]
  mov r0, r2
  add ip, r3, r2, asl #5
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  beq .L18461
  mov lr, pc
  ldr pc, [ip, #28]
  b .L18461
.L18648:
  mov r1, r6
  mov r2, r8
  mov r3, sl
  bl  render_scanline_obj_normal_2D
  b .L18650
.L18475:
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_partial_alpha_2D
  b .L18477
.L18792:
  ldr r3, [sp, #1020]
  mov r0, r2
  add ip, r3, r2, asl #5
  mov r1, r6
  mov r3, sl
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #16]
  ldr r3, [r9, #0]
  add r5, r4, #1
  cmp r5, r3
  bcs .L18679
  ldr r0, .L18810+24
  add r4, r0, r4, asl #2
.L18545:
  ldr r2, [r4, #4]
  add r5, r5, #1
  tst r2, #4
  add r4, r4, #4
  bne .L18546
  mov r3, #1
  ands  r3, r7, r3, asl r2
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  mov r3, sl
  mov r1, r6
  mov r2, r8
  movne lr, pc
  ldrne pc, [ip, #20]
.L18546:
  ldr r3, [r9, #0]
  cmp r3, r5
  bhi .L18545
.L18679:
  rsb r5, r6, r8
  b .L18539
.L18795:
  ldr r3, [sp, #1020]
  mov r0, r2
  add ip, r3, r2, asl #5
  mov r1, r6
  add r3, sp, #16
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #24]
  ldr r3, [r9, #0]
  add r5, r4, #1
  cmp r5, r3
  bcs .L18377
  ldr r0, .L18810+24
  add r4, r0, r4, asl #2
.L18383:
  ldr r2, [r4, #4]
  add r5, r5, #1
  tst r2, #4
  bne .L18384
  mov r3, #1
  ands  r3, r7, r3, asl r2
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  add r3, sp, #16
  mov r1, r6
  mov r2, r8
  movne lr, pc
  ldrne pc, [ip, #28]
.L18384:
  ldr r3, [r9, #0]
  add r4, r4, #4
  cmp r3, r5
  bhi .L18383
  b .L18377
.L18791:
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  mov r3, sl
  mov r1, r6
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #16]
  rsb r5, r6, r8
.L18562:
  ldr r2, [sp, #8]
  ldr r3, [r9, #0]
  add r4, r2, #1
  cmp r4, r3
  bcs .L18539
  ldr r3, .L18810+24
  and fp, fp, #64
  add r3, r3, r2, asl #2
  mov r0, r3
  str r3, [sp, #0]
  b .L18564
.L18804:
  bic ip, ip, #4
  cmp fp, #0
  mov r1, r6
  mov r2, r8
  mov r3, sl
  mov r0, ip
  beq .L18567
  bl  render_scanline_obj_color16_1D
.L18569:
  ldr r2, [sp, #0]
  ldr r3, [r9, #0]
  add r4, r4, #1
  add r2, r2, #4
  cmp r3, r4
  str r2, [sp, #0]
  bls .L18539
  ldr r0, [sp, #0]
.L18564:
  ldr ip, [r0, #4]
  tst ip, #4
  bne .L18804
  mov r3, #1
  ands  r3, r7, r3, asl ip
  ldr r1, [sp, #1020]
  mov r0, ip
  mov r2, r8
  add ip, r1, ip, asl #5
  mov r3, sl
  mov r1, r6
  beq .L18569
  mov lr, pc
  ldr pc, [ip, #20]
  b .L18569
.L18567:
  mov r0, ip
  mov r1, r6
  mov r2, r8
  mov r3, sl
  bl  render_scanline_obj_color16_2D
  b .L18569
.L18811:
  .align  2
.L18810:
  .word layer_count
  .word palette_ram_converted
  .word io_registers
  .word obj_alpha_count
  .word 132184095
  .word 7967
  .word layer_order
.L18790:
  cmp r6, r8
  rsbcs r5, r6, r8
  bcs .L18557
  add r1, sl, r6, asl #1
  mov r3, #0
  rsb r5, r6, r8
.L18559:
  add r3, r3, #1
  mov r0, #0  @ movhi
  cmp r5, r3
  strh  r0, [r1], #2  @ movhi
  bne .L18559
.L18557:
  tst fp, #64
  bic r0, r2, #4
  beq .L18560
  mov r1, r6
  mov r2, r8
  mov r3, sl
  bl  render_scanline_obj_color16_1D
  b .L18562
.L18794:
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  add r3, sp, #16
  mov r1, r6
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #24]
.L18400:
  ldr r3, [r9, #0]
  add r4, r5, #1
  cmp r4, r3
  bcs .L18377
  ldr r2, .L18810+24
  and fp, fp, #64
  add r5, r2, r5, asl #2
  b .L18402
.L18805:
  bic ip, ip, #4
  cmp fp, #0
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  mov r0, ip
  beq .L18405
  bl  render_scanline_obj_partial_alpha_1D
.L18407:
  ldr r3, [r9, #0]
  add r4, r4, #1
  cmp r3, r4
  add r5, r5, #4
  bls .L18377
.L18402:
  ldr ip, [r5, #4]
  tst ip, #4
  bne .L18805
  mov r3, #1
  ands  r3, r7, r3, asl ip
  ldr r3, [sp, #1020]
  mov r0, ip
  mov r1, r6
  add ip, r3, ip, asl #5
  mov r2, r8
  add r3, sp, #16
  beq .L18407
  mov lr, pc
  ldr pc, [ip, #28]
  b .L18407
.L18405:
  mov r0, ip
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_partial_alpha_2D
  b .L18407
.L18793:
  cmp r6, r8
  addcc r0, sp, #16
  movcc r3, #0
  addcc r1, r0, r6, asl #2
  movcc ip, r3
  rsbcc r0, r6, r8
  bcs .L18395
.L18397:
  add r3, r3, #1
  cmp r0, r3
  str ip, [r1], #4
  bne .L18397
.L18395:
  tst fp, #64
  bic r0, r2, #4
  beq .L18398
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_partial_alpha_1D
  b .L18400
.L18801:
  ldr r3, [sp, #1020]
  mov r0, r2
  add ip, r3, r2, asl #5
  mov r1, r6
  add r3, sp, #16
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #24]
  ldr r3, [r9, #0]
  add r5, r4, #1
  cmp r5, r3
  bcs .L18417
  ldr r0, .L18810+24
  add r4, r0, r4, asl #2
.L18423:
  ldr r2, [r4, #4]
  add r5, r5, #1
  tst r2, #4
  bne .L18424
  mov r3, #1
  ands  r3, r7, r3, asl r2
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  add r3, sp, #16
  mov r1, r6
  mov r2, r8
  movne lr, pc
  ldrne pc, [ip, #28]
.L18424:
  ldr r3, [r9, #0]
  add r4, r4, #4
  cmp r3, r5
  bhi .L18423
  b .L18417
.L18560:
  mov r1, r6
  mov r2, r8
  mov r3, sl
  bl  render_scanline_obj_color16_2D
  b .L18562
.L18398:
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_partial_alpha_2D
  b .L18400
.L18798:
  ldr r3, [sp, #1020]
  mov r0, r2
  add ip, r3, r2, asl #5
  mov r1, r6
  mov r3, sl
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #16]
  ldr r3, [r9, #0]
  add r5, r4, #1
  cmp r5, r3
  bcs .L18682
  ldr r0, .L18810+24
  add r4, r0, r4, asl #2
.L18591:
  ldr r2, [r4, #4]
  add r5, r5, #1
  tst r2, #4
  add r4, r4, #4
  bne .L18592
  mov r3, #1
  ands  r3, r7, r3, asl r2
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  mov r3, sl
  mov r1, r6
  mov r2, r8
  movne lr, pc
  ldrne pc, [ip, #20]
.L18592:
  ldr r3, [r9, #0]
  cmp r3, r5
  bhi .L18591
.L18682:
  rsb r5, r6, r8
  b .L18585
.L18797:
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  mov r3, sl
  mov r1, r6
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #16]
  rsb r5, r6, r8
.L18608:
  ldr r2, [sp, #12]
  ldr r3, [r9, #0]
  add r4, r2, #1
  cmp r4, r3
  bcs .L18585
  ldr r3, .L18810+24
  and fp, fp, #64
  add r3, r3, r2, asl #2
  str r3, [sp, #4]
  b .L18610
.L18806:
  bic ip, ip, #4
  cmp fp, #0
  mov r1, r6
  mov r2, r8
  mov r3, sl
  mov r0, ip
  beq .L18613
  bl  render_scanline_obj_color16_1D
.L18615:
  ldr r2, [sp, #4]
  ldr r3, [r9, #0]
  add r4, r4, #1
  add r2, r2, #4
  cmp r3, r4
  str r2, [sp, #4]
  bls .L18585
.L18610:
  ldr r0, [sp, #4]
  ldr ip, [r0, #4]
  tst ip, #4
  bne .L18806
  mov r3, #1
  ands  r3, r7, r3, asl ip
  ldr r1, [sp, #1020]
  mov r0, ip
  mov r2, r8
  add ip, r1, ip, asl #5
  mov r3, sl
  mov r1, r6
  beq .L18615
  mov lr, pc
  ldr pc, [ip, #20]
  b .L18615
.L18613:
  mov r0, ip
  mov r1, r6
  mov r2, r8
  mov r3, sl
  bl  render_scanline_obj_color16_2D
  b .L18615
.L18796:
  cmp r6, r8
  rsbcs r5, r6, r8
  bcs .L18603
  add r1, sl, r6, asl #1
  mov r3, #0
  rsb r5, r6, r8
.L18605:
  add r3, r3, #1
  mov r0, #0  @ movhi
  cmp r3, r5
  strh  r0, [r1], #2  @ movhi
  bne .L18605
.L18603:
  tst fp, #64
  bic r0, r2, #4
  beq .L18606
  mov r1, r6
  mov r2, r8
  mov r3, sl
  bl  render_scanline_obj_color16_1D
  b .L18608
.L18789:
  ldr r3, [sp, #1020]
  mov r0, r2
  add ip, r3, r2, asl #5
  mov r1, r6
  add r3, sp, #16
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #8]
  ldr r3, [r9, #0]
  add r5, r4, #1
  cmp r5, r3
  bcs .L18499
  ldr r0, .L18810+24
  add r4, r0, r4, asl #2
  b .L18342
.L18343:
  ldr r3, [r9, #0]
  add r4, r4, #4
  cmp r3, r5
  bls .L18499
.L18342:
  ldr r2, [r4, #4]
  add r5, r5, #1
  tst r2, #4
  bne .L18343
  mov r3, #1
  ands  r3, r7, r3, asl r2
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  add r3, sp, #16
  mov r1, r6
  mov r2, r8
  beq .L18343
  mov lr, pc
  ldr pc, [ip, #12]
  b .L18343
.L18787:
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  add r3, sp, #16
  mov r1, r6
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #8]
.L18359:
  ldr r3, [r9, #0]
  add r4, r5, #1
  cmp r4, r3
  bcs .L18499
  ldr r2, .L18810+24
  and fp, fp, #64
  add r5, r2, r5, asl #2
  b .L18361
.L18807:
  bic ip, ip, #4
  cmp fp, #0
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  mov r0, ip
  beq .L18364
  bl  render_scanline_obj_alpha_obj_1D
.L18366:
  ldr r3, [r9, #0]
  add r4, r4, #1
  cmp r3, r4
  add r5, r5, #4
  bls .L18499
.L18361:
  ldr ip, [r5, #4]
  tst ip, #4
  bne .L18807
  mov r3, #1
  ands  r3, r7, r3, asl ip
  ldr r3, [sp, #1020]
  mov r0, ip
  mov r1, r6
  add ip, r3, ip, asl #5
  mov r2, r8
  add r3, sp, #16
  beq .L18366
  mov lr, pc
  ldr pc, [ip, #12]
  b .L18366
.L18364:
  mov r0, ip
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_alpha_obj_2D
  b .L18366
.L18786:
  cmp r6, r8
  addcc r0, sp, #16
  movcc r3, #0
  addcc r1, r0, r6, asl #2
  movcc ip, r3
  rsbcc r0, r6, r8
  bcs .L18354
.L18356:
  add r3, r3, #1
  cmp r3, r0
  str ip, [r1], #4
  bne .L18356
.L18354:
  tst fp, #64
  bic r0, r2, #4
  beq .L18357
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_alpha_obj_1D
  b .L18359
.L18784:
  cmp r6, r8
  addcc r0, sp, #16
  movcc r3, #0
  addcc r1, r0, r6, asl #2
  movcc ip, r3
  rsbcc r0, r6, r8
  bcs .L18517
.L18519:
  add r3, r3, #1
  cmp r3, r0
  str ip, [r1], #4
  bne .L18519
.L18517:
  tst fp, #64
  bic r0, r2, #4
  beq .L18520
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_alpha_obj_1D
.L18522:
  ldr r3, [r9, #0]
  add r4, r5, #1
  cmp r4, r3
  bcs .L18499
  ldr r2, .L18810+24
  and fp, fp, #64
  add r5, r2, r5, asl #2
  b .L18524
.L18808:
  bic ip, ip, #4
  cmp fp, #0
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  mov r0, ip
  beq .L18527
  bl  render_scanline_obj_alpha_obj_1D
.L18529:
  ldr r3, [r9, #0]
  add r4, r4, #1
  cmp r3, r4
  add r5, r5, #4
  bls .L18499
.L18524:
  ldr ip, [r5, #4]
  tst ip, #4
  bne .L18808
  mov r3, #1
  ands  r3, r7, r3, asl ip
  ldr r3, [sp, #1020]
  mov r0, ip
  mov r1, r6
  add ip, r3, ip, asl #5
  mov r2, r8
  add r3, sp, #16
  beq .L18529
  mov lr, pc
  ldr pc, [ip, #12]
  b .L18529
.L18788:
  ldr r3, [sp, #1020]
  mov r0, r2
  add ip, r3, r2, asl #5
  mov r1, r6
  add r3, sp, #16
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #8]
  ldr r3, [r9, #0]
  add r5, r4, #1
  cmp r5, r3
  bcs .L18499
  ldr r0, .L18810+24
  add r4, r0, r4, asl #2
  b .L18505
.L18506:
  ldr r3, [r9, #0]
  add r4, r4, #4
  cmp r3, r5
  bls .L18499
.L18505:
  ldr r2, [r4, #4]
  add r5, r5, #1
  tst r2, #4
  bne .L18506
  mov r3, #1
  ands  r3, r7, r3, asl r2
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  add r3, sp, #16
  mov r1, r6
  mov r2, r8
  beq .L18506
  mov lr, pc
  ldr pc, [ip, #12]
  b .L18506
.L18527:
  mov r0, ip
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_alpha_obj_2D
  b .L18529
.L18520:
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_alpha_obj_2D
  b .L18522
.L18357:
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_alpha_obj_2D
  b .L18359
.L18800:
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  add r3, sp, #16
  mov r1, r6
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #24]
.L18440:
  ldr r3, [r9, #0]
  add r4, r5, #1
  cmp r4, r3
  bcs .L18417
  ldr r2, .L18810+24
  and fp, fp, #64
  add r5, r2, r5, asl #2
  b .L18442
.L18809:
  bic ip, ip, #4
  cmp fp, #0
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  mov r0, ip
  beq .L18445
  bl  render_scanline_obj_partial_alpha_1D
.L18447:
  ldr r3, [r9, #0]
  add r4, r4, #1
  cmp r3, r4
  add r5, r5, #4
  bls .L18417
.L18442:
  ldr ip, [r5, #4]
  tst ip, #4
  bne .L18809
  mov r3, #1
  ands  r3, r7, r3, asl ip
  ldr r3, [sp, #1020]
  mov r0, ip
  mov r1, r6
  add ip, r3, ip, asl #5
  mov r2, r8
  add r3, sp, #16
  beq .L18447
  mov lr, pc
  ldr pc, [ip, #28]
  b .L18447
.L18445:
  mov r0, ip
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_partial_alpha_2D
  b .L18447
.L18799:
  cmp r6, r8
  addcc r0, sp, #16
  movcc r3, #0
  addcc r1, r0, r6, asl #2
  movcc ip, r3
  rsbcc r0, r6, r8
  bcs .L18435
.L18437:
  add r3, r3, #1
  cmp r3, r0
  str ip, [r1], #4
  bne .L18437
.L18435:
  tst fp, #64
  bic r0, r2, #4
  beq .L18438
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_partial_alpha_1D
  b .L18440
.L18785:
  ldr r1, [sp, #1020]
  mov r0, r2
  add ip, r1, r2, asl #5
  add r3, sp, #16
  mov r1, r6
  mov r2, r8
  mov lr, pc
  ldr pc, [ip, #8]
  b .L18522
.L18606:
  mov r1, r6
  mov r2, r8
  mov r3, sl
  bl  render_scanline_obj_color16_2D
  b .L18608
.L18438:
  mov r1, r6
  mov r2, r8
  add r3, sp, #16
  bl  render_scanline_obj_partial_alpha_2D
  b .L18440
  .size render_scanline_conditional_tile, .-render_scanline_conditional_tile
  .align  2
  .global render_scanline_obj_copy_tile_2D
  .type render_scanline_obj_copy_tile_2D, %function
render_scanline_obj_copy_tile_2D:
  @ args = 0, pretend = 0, frame = 596
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L19654
  add r0, r0, r0, asl #2
  ldrh  r4, [r5, #6]
  ldr ip, .L19654+4
  add r0, r4, r0, asl #5
  ldrh  r6, [r5, #0]
  sub sp, sp, #608
  ldr ip, [ip, r0, asl #2]
  str r6, [sp, #56]
  str ip, [sp, #80]
  cmp ip, #0
  ldr ip, [sp, #56]
  ldrh  r6, [r5, #74]
  str r4, [sp, #76]
  ldr lr, .L19654+8
  and r4, ip, #7
  ldr ip, .L19654+12
  ldrh  r5, [r5, #80]
  add r4, ip, r4, asl #7
  add r0, lr, r0, asl #7
  mov r6, r6, lsr #8
  str r4, [sp, #64]
  str r0, [sp, #84]
  str r1, [sp, #28]
  str r2, [sp, #24]
  str r3, [sp, #20]
  str r6, [sp, #60]
  str r5, [sp, #52]
  beq .L19604
  rsb r0, r1, r2
  add lr, r3, r1, asl #1
  mov r1, #0
  mov r2, r1
  str lr, [sp, #104]
  str r0, [sp, #124]
  str r1, [sp, #72]
  b .L18815
.L18819:
  ldr lr, [sp, #72]
  ldr r0, [sp, #80]
  add lr, lr, #1
  cmp r0, lr
  str lr, [sp, #72]
  beq .L19604
  ldr r2, [sp, #72]
.L18815:
  ldr r4, [sp, #84]
  ldr r5, .L19654+16
  ldrb  r3, [r2, r4]  @ zero_extendqisi2
  ldr lr, .L19654+20
  mov r3, r3, asl #3
  ldrh  r6, [r3, r5]
  add r3, r3, r5
  ldrh  r7, [r3, #2]
  mov r9, r6, lsr #12
  and r2, r9, #12
  orr sl, r2, r7, lsr #14
  mov r1, r7, asl #23
  ldr fp, [lr, sl, asl #2]
  ands  ip, r6, #512
  mov r8, r1, asr #23
  ldr r0, [sp, #24]
  ldr r5, [sp, #28]
  addne r1, r8, fp, asl #1
  addeq r1, r8, fp
  ldr r2, [sp, #28]
  cmp r8, r5
  movcs r5, r8
  cmp r1, r0
  movcs r1, r0
  str ip, [sp, #32]
  ldrh  ip, [r3, #4]
  cmp r0, r5
  movls r3, #0
  movhi r3, #1
  cmp r2, r1
  movcs r3, #0
  cmp r3, #0
  beq .L18819
  ldr lr, [sp, #56]
  add r4, sp, #128
  str lr, [sp, #0]
  ldr lr, [sp, #52]
  mov r0, r5
  str lr, [sp, #4]
  ldr lr, [sp, #64]
  ldr r3, [sp, #60]
  mov r2, r4
  str ip, [sp, #12]
  str lr, [sp, #8]
  bl  render_scanline_conditional_tile
  and r0, r6, #255
  cmp r0, #160
  ldr r3, .L19654+24
  add r5, r4, r5, asl #1
  subgt r0, r0, #256
  tst r6, #256
  str r5, [sp, #68]
  ldr ip, [sp, #12]
  ldr sl, [r3, sl, asl #2]
  beq .L18823
  tst r6, #8192
  beq .L18825
  mov r3, r7, lsr #4
  ldr r2, .L19654+16
  and r3, r3, #992
  add r3, r3, r2
  ldr r1, [sp, #32]
  ldrh  r4, [r3, #30]
  cmp r1, #0
  add r1, sl, sl, lsr #31
  ldrh  r5, [r3, #6]
  add r2, fp, fp, lsr #31
  str r4, [sp, #40]
  mov r4, r1, asr #1
  ldr r1, [sp, #28]
  mov lr, r2, asr #1
  str r5, [sp, #36]
  moveq r9, fp
  moveq r7, lr
  moveq r5, r4
  movne r9, fp, asl #1
  movne r7, lr, asl #1
  movne r5, r4, asl #1
  cmp r8, r1
  ldrh  r2, [r3, #14]
  ldrh  r6, [r3, #22]
  bge .L18830
  rsb r1, r8, r1
  rsb r9, r1, r9
  cmp r9, #0
  ble .L18819
  ldr r8, [sp, #28]
  rsb r7, r1, r7
.L18830:
  ldr r1, [sp, #24]
  add r3, r8, r9
  cmp r3, r1
  bge .L19632
.L18833:
  add r0, r0, r5
  ldr r5, [sp, #36]
  mov r2, r2, asl #16
  mov r3, r5, asl #16
  ldr r5, [sp, #40]
  mov r3, r3, asr #16
  mov r1, r5, asl #16
  str r3, [sp, #88]
  mov r5, r2, asr #16
  ldr r3, [sp, #76]
  ldr r2, [sp, #20]
  mov lr, lr, asl #8
  cmp r6, #0
  str lr, [sp, #112]
  mov r1, r1, asr #16
  mov lr, r4, asl #8
  add r8, r2, r8, asl #1
  rsb r0, r0, r3
  beq .L19633
  mov r3, ip, asl #22
  ldr r2, .L19654+28
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  cmp r9, #0
  str r3, [sp, #120]
  ble .L18819
  mov r3, r6, asl #16
  mul r2, r0, r1
  mov r6, r3, asr #16
  mul r3, r0, r5
  ldr r0, [sp, #88]
  mul r1, r6, r7
  mul r0, r7, r0
  ldr ip, [sp, #112]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r5, ip, r3
  add r4, lr, r2
  mov ip, r4, asr #8
  mov lr, r5, asr #8
  cmp lr, fp
  cmpcc ip, sl
  movcs r3, #0
  movcc r3, #1
  movcs r7, r3
  bcc .L19634
.L18851:
  ldr lr, [sp, #88]
  ldr r0, [sp, #68]
  add r7, r7, #1
  add r5, r5, lr
  add r4, r4, r6
  add r0, r0, #2
  cmp r9, r7
  mov lr, r5, asr #8
  mov ip, r4, asr #8
  add r8, r8, #2
  str r0, [sp, #68]
  beq .L18819
  cmp lr, fp
  cmpcc ip, sl
  bcs .L18851
  cmp ip, sl
  cmpcc lr, fp
  bcs .L18819
.L19635:
  ldr r1, [sp, #88]
  and r3, ip, #7
  mov r2, lr, asr #3
  mov r3, r3, asl #3
  add r5, r5, r1
  add r3, r3, r2, asl #6
  mov r1, ip, asr #3
  ldr r2, [sp, #120]
  add r3, r3, r1, asl #10
  add r3, r3, r2
  and r0, lr, #7
  ldrb  r2, [r3, r0]  @ zero_extendqisi2
  ldr r0, [sp, #68]
  cmp r2, #0
  ldrne r3, [sp, #68]
  add r7, r7, #1
  ldrneh  r3, [r3, #0]
  add r4, r4, r6
  strneh  r3, [r8, #0]  @ movhi
  add r0, r0, #2
  cmp r9, r7
  mov ip, r4, asr #8
  mov lr, r5, asr #8
  add r8, r8, #2
  str r0, [sp, #68]
  ble .L18819
.L18854:
  cmp ip, sl
  cmpcc lr, fp
  bcc .L19635
  b .L18819
.L18823:
  ldr r4, [sp, #76]
  tst r7, #8192
  rsb r0, r0, r4
  rsbne r3, r0, sl
  subne r0, r3, #1
  mov r2, r7, asl #19
  and r3, r9, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L18819
  .p2align 2
.L18903:
  .word .L18899
  .word .L18900
  .word .L18901
  .word .L18902
.L19604:
  add sp, sp, #608
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L18825:
  mov r3, r7, lsr #4
  ldr r2, .L19654+16
  and r3, r3, #992
  add r3, r3, r2
  ldr r1, [sp, #32]
  ldrh  r4, [r3, #30]
  cmp r1, #0
  add r1, sl, sl, lsr #31
  ldrh  r5, [r3, #6]
  add r2, fp, fp, lsr #31
  str r4, [sp, #48]
  mov r4, r1, asr #1
  ldr r1, [sp, #28]
  mov lr, r2, asr #1
  str r5, [sp, #44]
  moveq r6, fp
  moveq r7, lr
  moveq r5, r4
  movne r6, fp, asl #1
  movne r7, lr, asl #1
  movne r5, r4, asl #1
  cmp r8, r1
  ldrh  r2, [r3, #14]
  ldrh  r9, [r3, #22]
  bge .L18862
  rsb r1, r8, r1
  rsb r6, r1, r6
  cmp r6, #0
  ble .L18819
  ldr r8, [sp, #28]
  rsb r7, r1, r7
.L18862:
  ldr r1, [sp, #24]
  add r3, r8, r6
  cmp r3, r1
  bge .L19636
.L18865:
  add r0, r0, r5
  ldr r5, [sp, #44]
  mov r2, r2, asl #16
  mov r3, r5, asl #16
  mov r3, r3, asr #16
  mov r2, r2, asr #16
  ldr r5, [sp, #48]
  str r3, [sp, #92]
  str r2, [sp, #96]
  ldr r3, [sp, #76]
  ldr r2, [sp, #20]
  mov lr, lr, asl #8
  mov r1, r5, asl #16
  cmp r9, #0
  str lr, [sp, #108]
  mov r1, r1, asr #16
  mov lr, r4, asl #8
  add r8, r2, r8, asl #1
  rsb r0, r0, r3
  beq .L19637
  mov r3, ip, asl #22
  ldr r2, .L19654+28
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  cmp r6, #0
  str r3, [sp, #116]
  ble .L18819
  mov r3, r9, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #100]
  ldr r3, [sp, #96]
  mul r2, r0, r1
  mul r3, r0, r3
  ldr r0, [sp, #92]
  ldr r1, [sp, #100]
  mul r0, r7, r0
  mul r1, r7, r1
  rsb r3, r0, r3
  ldr r0, [sp, #108]
  rsb r2, r1, r2
  add r5, r0, r3
  add r4, lr, r2
  mov ip, r4, asr #8
  mov lr, r5, asr #8
  cmp lr, fp
  cmpcc ip, sl
  movcs r3, #0
  movcc r3, #1
  movcs r7, r3
  bcc .L19638
.L18886:
  ldr r3, [sp, #68]
  ldr r1, [sp, #92]
  ldr r2, [sp, #100]
  add r7, r7, #1
  add r5, r5, r1
  add r4, r4, r2
  add r3, r3, #2
  cmp r6, r7
  mov lr, r5, asr #8
  mov ip, r4, asr #8
  add r8, r8, #2
  str r3, [sp, #68]
  beq .L18819
  cmp lr, fp
  cmpcc ip, sl
  bcs .L18886
  cmp ip, sl
  cmpcc lr, fp
  bcs .L18819
.L19639:
  mov r3, lr, asr #1
  ldr r1, [sp, #116]
  and r3, r3, #3
  and r0, ip, #7
  str r3, [sp, #16]
  ldr r3, [sp, #116]
  add r0, r1, r0, asl #2
  and r1, ip, #7
  mov r2, lr, asr #1
  add r1, r3, r1, asl #2
  mov r3, ip, asr #3
  and r9, r2, #3
  mov r3, r3, asl #10
  mov r2, lr, asr #3
  tst lr, #1
  add r3, r3, r2, asl #5
  add r2, r0, r3
  movne ip, r9
  add r0, r1, r3
  ldreqb  r3, [r0, r9]  @ zero_extendqisi2
  ldrneb  r3, [r2, ip]  @ zero_extendqisi2
  andeq r0, r3, #15
  movne r0, r3, lsr #4
  cmp r0, #0
  ldrne r2, [sp, #68]
  ldr lr, [sp, #92]
  ldrneh  r2, [r2, #0]
  ldr r3, [sp, #68]
  ldr r1, [sp, #100]
  add r7, r7, #1
  strneh  r2, [r8, #0]  @ movhi
  add r5, r5, lr
  add r4, r4, r1
  add r3, r3, #2
  cmp r6, r7
  mov lr, r5, asr #8
  mov ip, r4, asr #8
  add r8, r8, #2
  str r3, [sp, #68]
  ble .L18819
.L18889:
  cmp ip, sl
  cmpcc lr, fp
  bcc .L19639
  b .L18819
.L19636:
  rsb r6, r8, r1
  cmp r6, #0
  bgt .L18865
  b .L18819
.L19632:
  rsb r9, r8, r1
  cmp r9, #0
  bgt .L18833
  b .L18819
.L19633:
  mla r3, r0, r1, lr
  mov r1, r3, asr #8
  cmp r1, sl
  bcs .L18819
  mov r3, ip, asl #22
  mov r2, r1, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #2
  ldr r3, .L19654+28
  cmp r9, #0
  add r4, r3, r1, asl #3
  ble .L18819
  ldr r2, [sp, #88]
  mul r3, r0, r5
  mul r2, r7, r2
  ldr r5, [sp, #112]
  rsb r3, r2, r3
  add r0, r5, r3
  mov ip, r0, asr #8
  cmp ip, fp
  movcs lr, r6
  bcc .L19640
.L18841:
  ldr r1, [sp, #68]
  ldr r6, [sp, #88]
  add lr, lr, #1
  add r0, r0, r6
  add r1, r1, #2
  cmp r9, lr
  mov ip, r0, asr #8
  add r8, r8, #2
  str r1, [sp, #68]
  beq .L18819
  cmp ip, fp
  bcs .L18841
  b .L19618
.L19637:
  mla r3, r0, r1, lr
  mov r1, r3, asr #8
  cmp r1, sl
  bcs .L18819
  mov r3, ip, asl #22
  mov r2, r1, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #3
  ldr r3, .L19654+28
  cmp r6, #0
  add r5, r3, r1, asl #2
  ble .L18819
  ldr r3, [sp, #96]
  ldr r2, [sp, #92]
  mul r3, r0, r3
  mul r2, r7, r2
  ldr r4, [sp, #108]
  rsb r3, r2, r3
  add r0, r4, r3
  mov ip, r0, asr #8
  cmp ip, fp
  movcs r1, r9
  bcc .L19641
.L18873:
  ldr ip, [sp, #92]
  ldr lr, [sp, #68]
  add r1, r1, #1
  add r0, r0, ip
  add lr, lr, #2
  cmp r6, r1
  mov ip, r0, asr #8
  add r8, r8, #2
  str lr, [sp, #68]
  beq .L18819
  cmp ip, fp
  bcs .L18873
  b .L19620
.L18902:
  subs  r2, fp, #8
  submi r2, fp, #1
  mov r3, r0, lsr #3
  mov r2, r2, asr #3
  mov r1, ip, asl #22
  add r2, r2, r3, asl #4
  mov r1, r1, lsr #22
  and r3, r0, #7
  add r1, r1, r2, asl #1
  add r3, r3, r1, asl #2
  ldr lr, [sp, #28]
  mov r0, r3, asl #3
  ldr r3, .L19654+28
  cmp r8, lr
  add r7, r0, r3
  blt .L19642
  ldr r4, [sp, #24]
  add r3, r8, fp
  cmp r4, r3
  bhi .L19540
  rsb r9, r8, r4
  cmp r9, #0
  ble .L18819
  ldr r5, [sp, #20]
  movs  sl, r9, lsr #3
  add r1, r5, r8, asl #1
  beq .L19543
  ldr r3, .L19654+32
  ldr r4, [sp, #68]
  add r0, r0, r3
  mov lr, r1
  mov r5, r7
  mov r2, #0
.L19545:
  ldr ip, [r0, #68]
  cmp ip, #0
  beq .L19546
  tst ip, #255
  ldrneh  r6, [r4, #6]
  mov r3, ip, lsr #8
  strneh  r6, [lr, #6]  @ movhi
  tst r3, #255
  ldrneh  r3, [r4, #4]
  strneh  r3, [lr, #4]  @ movhi
  mov r3, ip, lsr #16
  tst r3, #255
  ldrneh  r6, [r4, #2]
  strneh  r6, [lr, #2]  @ movhi
  movs  ip, ip, lsr #24
  ldrneh  ip, [r4, #0]
  strneh  ip, [lr, #0]  @ movhi
.L19546:
  ldr ip, [r5, #0]
  cmp ip, #0
  beq .L19555
  tst ip, #255
  ldrneh  r3, [r4, #14]
  strneh  r3, [lr, #14] @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r6, [r4, #12]
  mov r3, ip, lsr #16
  strneh  r6, [lr, #12] @ movhi
  tst r3, #255
  ldrneh  r3, [r4, #10]
  strneh  r3, [lr, #10] @ movhi
  movs  ip, ip, lsr #24
  ldrneh  r6, [r4, #8]
  strneh  r6, [lr, #8]  @ movhi
.L19555:
  add r2, r2, #1
  cmp sl, r2
  sub r5, r5, #64
  add lr, lr, #16
  add r4, r4, #16
  sub r0, r0, #64
  bne .L19545
  ldr ip, [sp, #68]
  mov r3, sl, asl #4
  rsb r2, sl, sl, asl #26
  add ip, ip, r3
  add r1, r1, r3
  add r7, r7, r2, asl #6
  str ip, [sp, #68]
.L19543:
  ands  ip, r9, #7
  beq .L18819
  cmp ip, #3
  ldrls r2, [r7, #4]
  bls .L19578
  ldr r2, [r7, #4]
  cmp r2, #0
  beq .L19568
  tst r2, #255
  ldrne lr, [sp, #68]
  mov r3, r2, lsr #8
  ldrneh  lr, [lr, #6]
  strneh  lr, [r1, #6]  @ movhi
  tst r3, #255
  ldrne r0, [sp, #68]
  mov r3, r2, lsr #16
  ldrneh  r0, [r0, #4]
  strneh  r0, [r1, #4]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #2]
  strneh  r3, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #0]
  strneh  r4, [r1, #0]  @ movhi
.L19568:
  subs  ip, ip, #4
  ldr r2, [r7, #0]
  beq .L18819
  ldr r5, [sp, #68]
  add r1, r1, #8
  add r5, r5, #8
  str r5, [sp, #68]
.L19578:
  mov r3, #0
.L19579:
  movs  r6, r2, lsr #24
  ldrne lr, [sp, #68]
  mov r0, r3, asl #1
  ldrneh  lr, [r0, lr]
  add r3, r3, #1
  strneh  lr, [r0, r1]  @ movhi
  cmp ip, r3
  mov r2, r2, asl #8
  bhi .L19579
  b .L18819
.L18899:
  mov r3, ip, asl #22
  mov r2, r0, lsr #3
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r0, #7
  ldr r5, [sp, #28]
  add r1, r1, r3, asl #3
  ldr r3, .L19654+28
  cmp r8, r5
  add r0, r3, r1, asl #2
  blt .L19643
  ldr r4, [sp, #24]
  add r3, r8, fp
  cmp r4, r3
  bhi .L18985
  rsb r7, r8, r4
  cmp r7, #0
  ble .L18819
  ldr r6, [sp, #20]
  movs  r5, r7, lsr #3
  add r1, r6, r8, asl #1
  beq .L18988
  ldr lr, [sp, #68]
  mov ip, r1
  mov r4, r0
  mov r2, #0
.L18990:
  ldr r3, [r4, #0]
  cmp r3, #0
  beq .L18991
  tst r3, #15
  ldrneh  r6, [lr, #0]
  strneh  r6, [ip, #0]  @ movhi
  tst r3, #240
  ldrneh  r6, [lr, #2]
  strneh  r6, [ip, #2]  @ movhi
  tst r3, #3840
  ldrneh  r6, [lr, #4]
  strneh  r6, [ip, #4]  @ movhi
  tst r3, #61440
  ldrneh  r6, [lr, #6]
  strneh  r6, [ip, #6]  @ movhi
  tst r3, #983040
  ldrneh  r6, [lr, #8]
  strneh  r6, [ip, #8]  @ movhi
  tst r3, #15728640
  ldrneh  r6, [lr, #10]
  strneh  r6, [ip, #10] @ movhi
  tst r3, #251658240
  ldrneh  r6, [lr, #12]
  strneh  r6, [ip, #12] @ movhi
  movs  r3, r3, lsr #28
  ldrneh  r3, [lr, #14]
  strneh  r3, [ip, #14] @ movhi
.L18991:
  add r2, r2, #1
  cmp r2, r5
  add r4, r4, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L18990
  ldr r4, [sp, #68]
  mov r3, r5, asl #4
  add r4, r4, r3
  add r1, r1, r3
  add r0, r0, r5, asl #5
  str r4, [sp, #68]
.L18988:
  ands  ip, r7, #7
  beq .L18819
  ldr r0, [r0, #0]
  mov r2, #0
.L19010:
  tst r0, #15
  ldrne r5, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  r5, [r3, r5]
  add r2, r2, #1
  strneh  r5, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, lsr #4
  bne .L19010
  b .L18819
.L18900:
  mov r3, ip, asl #22
  mov r1, r0, lsr #3
  subs  r2, fp, #8
  mov r3, r3, lsr #22
  submi r2, fp, #1
  add r3, r3, r1, asl #5
  add r3, r3, r2, asr #3
  and r1, r0, #7
  ldr lr, [sp, #28]
  add r1, r1, r3, asl #3
  ldr r3, .L19654+28
  cmp r8, lr
  add r0, r3, r1, asl #2
  blt .L19644
  ldr lr, [sp, #24]
  add r3, r8, fp
  cmp lr, r3
  bhi .L19115
  rsb r7, r8, lr
  cmp r7, #0
  ble .L18819
  ldr r2, [sp, #20]
  movs  r3, r7, lsr #3
  add r1, r2, r8, asl #1
  beq .L19118
  ldr lr, [sp, #68]
  mov ip, r1
  mov r4, r0
  mov r5, #0
.L19120:
  ldr r2, [r4, #0]
  cmp r2, #0
  beq .L19121
  tst r2, #15
  ldrneh  r6, [lr, #14]
  strneh  r6, [ip, #14] @ movhi
  tst r2, #240
  ldrneh  r6, [lr, #12]
  strneh  r6, [ip, #12] @ movhi
  tst r2, #3840
  ldrneh  r6, [lr, #10]
  strneh  r6, [ip, #10] @ movhi
  tst r2, #61440
  ldrneh  r6, [lr, #8]
  strneh  r6, [ip, #8]  @ movhi
  tst r2, #983040
  ldrneh  r6, [lr, #6]
  strneh  r6, [ip, #6]  @ movhi
  tst r2, #15728640
  ldrneh  r6, [lr, #4]
  strneh  r6, [ip, #4]  @ movhi
  tst r2, #251658240
  ldrneh  r6, [lr, #2]
  strneh  r6, [ip, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrneh  r2, [lr, #0]
  strneh  r2, [ip, #0]  @ movhi
.L19121:
  add r5, r5, #1
  cmp r5, r3
  sub r4, r4, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L19120
  ldr r4, [sp, #68]
  rsb r2, r3, r3, asl #27
  mov r3, r3, asl #4
  add r4, r4, r3
  add r1, r1, r3
  add r0, r0, r2, asl #5
  str r4, [sp, #68]
.L19118:
  ands  ip, r7, #7
  beq .L18819
  ldr r0, [r0, #0]
  mov r2, #0
.L19140:
  movs  r5, r0, lsr #28
  ldrne r6, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  r6, [r3, r6]
  add r2, r2, #1
  strneh  r6, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, asl #4
  bne .L19140
  b .L18819
.L18901:
  mov r2, ip, asl #22
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  add r2, r2, r1, asl #5
  and r3, r0, #7
  add r3, r3, r2, asl #2
  ldr r1, [sp, #28]
  mov r0, r3, asl #3
  ldr r3, .L19654+28
  cmp r8, r1
  add r2, r0, r3
  blt .L19645
  ldr r4, [sp, #24]
  add r3, r8, fp
  cmp r4, r3
  bhi .L19320
  rsb r9, r8, r4
  cmp r9, #0
  ble .L18819
  ldr r5, [sp, #20]
  movs  sl, r9, lsr #3
  add r1, r5, r8, asl #1
  beq .L19323
  ldr r3, .L19654+36
  ldr r4, [sp, #68]
  add r0, r0, r3
  mov lr, r1
  mov r5, r2
  mov r7, #0
.L19325:
  ldr ip, [r5, #0]
  cmp ip, #0
  beq .L19326
  tst ip, #255
  ldrneh  r6, [r4, #0]
  mov r3, ip, lsr #8
  strneh  r6, [lr, #0]  @ movhi
  tst r3, #255
  ldrneh  r3, [r4, #2]
  strneh  r3, [lr, #2]  @ movhi
  mov r3, ip, lsr #16
  tst r3, #255
  ldrneh  r6, [r4, #4]
  strneh  r6, [lr, #4]  @ movhi
  movs  ip, ip, lsr #24
  ldrneh  ip, [r4, #6]
  strneh  ip, [lr, #6]  @ movhi
.L19326:
  ldr ip, [r0, #-60]
  cmp ip, #0
  beq .L19335
  tst ip, #255
  ldrneh  r3, [r4, #8]
  strneh  r3, [lr, #8]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r6, [r4, #10]
  mov r3, ip, lsr #16
  strneh  r6, [lr, #10] @ movhi
  tst r3, #255
  ldrneh  r3, [r4, #12]
  strneh  r3, [lr, #12] @ movhi
  movs  ip, ip, lsr #24
  ldrneh  r6, [r4, #14]
  strneh  r6, [lr, #14] @ movhi
.L19335:
  add r7, r7, #1
  cmp r7, sl
  add r5, r5, #64
  add lr, lr, #16
  add r4, r4, #16
  add r0, r0, #64
  bne .L19325
  ldr ip, [sp, #68]
  mov r3, sl, asl #4
  add ip, ip, r3
  add r1, r1, r3
  add r2, r2, sl, asl #6
  str ip, [sp, #68]
.L19323:
  ands  ip, r9, #7
  beq .L18819
  cmp ip, #3
  ldrls r3, [r2, #0]
  bls .L19358
  ldr r0, [r2, #0]
  cmp r0, #0
  beq .L19348
  tst r0, #255
  ldrne lr, [sp, #68]
  mov r3, r0, lsr #8
  ldrneh  lr, [lr, #0]
  strneh  lr, [r1, #0]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #2]
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r0, lsr #16
  tst r3, #255
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  movs  r0, r0, lsr #24
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #6]
  strneh  r5, [r1, #6]  @ movhi
.L19348:
  subs  ip, ip, #4
  ldr r3, [r2, #4]
  beq .L18819
  ldr r6, [sp, #68]
  add r1, r1, #8
  add r6, r6, #8
  str r6, [sp, #68]
.L19358:
  mov r2, #0
.L19359:
  tst r3, #255
  ldrne lr, [sp, #68]
  mov r0, r2, asl #1
  ldrneh  lr, [r0, lr]
  add r2, r2, #1
  strneh  lr, [r0, r1]  @ movhi
  cmp ip, r2
  mov r3, r3, lsr #8
  bhi .L19359
  b .L18819
.L19645:
  rsb r0, r8, r1
  rsb lr, r0, fp
  cmp lr, #0
  ble .L18819
  ldr r4, [sp, #24]
  add r3, r8, fp
  cmp r4, r3
  bhi .L19167
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  add r8, r2, r3, asl #6
  bne .L19169
  ldr r7, [sp, #124]
  ldr r5, [sp, #104]
.L19171:
  movs  r4, r7, lsr #3
  beq .L19229
  ldr r0, [sp, #68]
  mov r1, r5
  mov ip, r8
  mov lr, #0
.L19231:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L19232
  tst r2, #255
  ldrneh  r3, [r0, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r6, [r0, #2]
  mov r3, r2, lsr #16
  strneh  r6, [r1, #2]  @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #4]
  strneh  r3, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r6, [r0, #6]
  strneh  r6, [r1, #6]  @ movhi
.L19232:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L19241
  tst r2, #255
  ldrneh  r3, [r0, #8]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r6, [r0, #10]
  mov r3, r2, lsr #16
  strneh  r6, [r1, #10] @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #12]
  strneh  r3, [r1, #12] @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r6, [r0, #14]
  strneh  r6, [r1, #14] @ movhi
.L19241:
  add lr, lr, #1
  cmp lr, r4
  add ip, ip, #64
  add r1, r1, #16
  add r0, r0, #16
  bne .L19231
  ldr ip, [sp, #68]
  mov r3, r4, asl #4
  add ip, ip, r3
  add r5, r5, r3
  add r8, r8, r4, asl #6
  str ip, [sp, #68]
.L19229:
  ands  r0, r7, #7
  beq .L18819
  cmp r0, #3
  ldrls r3, [r8, #0]
  bls .L19264
  ldr r2, [r8, #0]
  cmp r2, #0
  beq .L19254
  tst r2, #255
  ldrne lr, [sp, #68]
  mov r3, r2, lsr #8
  ldrneh  lr, [lr, #0]
  strneh  lr, [r5, #0]  @ movhi
  tst r3, #255
  ldrne r1, [sp, #68]
  mov r3, r2, lsr #16
  ldrneh  r1, [r1, #2]
  strneh  r1, [r5, #2]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r5, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #6]
  strneh  r4, [r5, #6]  @ movhi
.L19254:
  subs  r0, r0, #4
  ldr r3, [r8, #4]
  beq .L18819
  ldr r6, [sp, #68]
  add r5, r5, #8
  add r6, r6, #8
  str r6, [sp, #68]
.L19264:
  mov r2, #0
.L19265:
  tst r3, #255
  ldrne ip, [sp, #68]
  mov r1, r2, asl #1
  ldrneh  ip, [r1, ip]
  add r2, r2, #1
  strneh  ip, [r1, r5]  @ movhi
  cmp r0, r2
  mov r3, r3, lsr #8
  bhi .L19265
  b .L18819
.L19655:
  .align  2
.L19654:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word tile_mode_renderers
  .word oam_ram
  .word obj_width_table
  .word obj_height_table
  .word vram+65536
  .word vram+65472
  .word vram+65600
.L19644:
  rsb ip, r8, lr
  rsb r1, ip, fp
  cmp r1, #0
  ble .L18819
  ldr r2, [sp, #24]
  add r3, r8, fp
  cmp r2, r3
  bhi .L19037
  mov r3, ip, lsr #3
  ands  r4, ip, #7
  sub r0, r0, r3, asl #5
  bne .L19039
  ldr r7, [sp, #124]
  ldr r1, [sp, #104]
.L19041:
  movs  r3, r7, lsr #3
  beq .L19058
  ldr lr, [sp, #68]
  mov ip, r1
  mov r4, r0
  mov r5, #0
.L19060:
  ldr r2, [r4, #0]
  cmp r2, #0
  beq .L19061
  tst r2, #15
  ldrneh  r6, [lr, #14]
  strneh  r6, [ip, #14] @ movhi
  tst r2, #240
  ldrneh  r6, [lr, #12]
  strneh  r6, [ip, #12] @ movhi
  tst r2, #3840
  ldrneh  r6, [lr, #10]
  strneh  r6, [ip, #10] @ movhi
  tst r2, #61440
  ldrneh  r6, [lr, #8]
  strneh  r6, [ip, #8]  @ movhi
  tst r2, #983040
  ldrneh  r6, [lr, #6]
  strneh  r6, [ip, #6]  @ movhi
  tst r2, #15728640
  ldrneh  r6, [lr, #4]
  strneh  r6, [ip, #4]  @ movhi
  tst r2, #251658240
  ldrneh  r6, [lr, #2]
  strneh  r6, [ip, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrneh  r2, [lr, #0]
  strneh  r2, [ip, #0]  @ movhi
.L19061:
  add r5, r5, #1
  cmp r5, r3
  sub r4, r4, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L19060
  ldr r4, [sp, #68]
  rsb r2, r3, r3, asl #27
  mov r3, r3, asl #4
  add r4, r4, r3
  add r1, r1, r3
  add r0, r0, r2, asl #5
  str r4, [sp, #68]
.L19058:
  ands  ip, r7, #7
  beq .L18819
  ldr r0, [r0, #0]
  mov r2, #0
.L19080:
  movs  r5, r0, lsr #28
  ldrne r6, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  r6, [r3, r6]
  add r2, r2, #1
  strneh  r6, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, asl #4
  bne .L19080
  b .L18819
.L19643:
  rsb ip, r8, r5
  rsb lr, ip, fp
  cmp lr, #0
  ble .L18819
  ldr r6, [sp, #24]
  add r3, r8, fp
  cmp r6, r3
  bhi .L18907
  mov r3, ip, lsr #3
  mov r1, r3, asl #5
  ands  r3, ip, #7
  add r4, r0, r1
  bne .L18909
  ldr r7, [sp, #124]
  ldr r5, [sp, #104]
.L18911:
  movs  lr, r7, lsr #3
  beq .L18928
  ldr r1, [sp, #68]
  mov r2, r5
  mov r0, r4
  mov ip, #0
.L18930:
  ldr r3, [r0, #0]
  cmp r3, #0
  beq .L18931
  tst r3, #15
  ldrneh  r6, [r1, #0]
  strneh  r6, [r2, #0]  @ movhi
  tst r3, #240
  ldrneh  r6, [r1, #2]
  strneh  r6, [r2, #2]  @ movhi
  tst r3, #3840
  ldrneh  r6, [r1, #4]
  strneh  r6, [r2, #4]  @ movhi
  tst r3, #61440
  ldrneh  r6, [r1, #6]
  strneh  r6, [r2, #6]  @ movhi
  tst r3, #983040
  ldrneh  r6, [r1, #8]
  strneh  r6, [r2, #8]  @ movhi
  tst r3, #15728640
  ldrneh  r6, [r1, #10]
  strneh  r6, [r2, #10] @ movhi
  tst r3, #251658240
  ldrneh  r6, [r1, #12]
  strneh  r6, [r2, #12] @ movhi
  movs  r3, r3, lsr #28
  ldrneh  r3, [r1, #14]
  strneh  r3, [r2, #14] @ movhi
.L18931:
  add ip, ip, #1
  cmp ip, lr
  add r0, r0, #32
  add r2, r2, #16
  add r1, r1, #16
  bne .L18930
  ldr r6, [sp, #68]
  mov r3, lr, asl #4
  add r6, r6, r3
  add r5, r5, r3
  add r4, r4, lr, asl #5
  str r6, [sp, #68]
.L18928:
  ands  r0, r7, #7
  beq .L18819
  ldr r3, [r4, #0]
  mov r1, #0
.L18950:
  tst r3, #15
  ldrne ip, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  ip, [r2, ip]
  add r1, r1, #1
  strneh  ip, [r2, r5]  @ movhi
  cmp r1, r0
  mov r3, r3, lsr #4
  bne .L18950
  b .L18819
.L18876:
  cmp ip, fp
  bcs .L18819
.L19620:
  mov r3, ip, asr #1
  and r4, r3, #3
  mov r3, ip, asr #3
  mov r3, r3, asl #5
  mov r2, ip, asr #1
  tst ip, #1
  and lr, r2, #3
  add ip, r3, r5
  add r2, r3, r5
  ldreqb  r3, [r2, lr]  @ zero_extendqisi2
  ldrneb  r3, [ip, r4]  @ zero_extendqisi2
  andeq r2, r3, #15
  movne r2, r3, lsr #4
  cmp r2, #0
  ldrne r4, [sp, #68]
  ldr lr, [sp, #68]
  ldrneh  r4, [r4, #0]
  ldr r3, [sp, #92]
  add r1, r1, #1
  strneh  r4, [r8, #0]  @ movhi
  add r0, r0, r3
  add lr, lr, #2
  cmp r6, r1
  mov ip, r0, asr #8
  add r8, r8, #2
  str lr, [sp, #68]
  bgt .L18876
  b .L18819
.L18844:
  cmp ip, fp
  bcs .L18819
.L19618:
  ldr r2, [sp, #88]
  mov r3, ip, asr #3
  add r3, r4, r3, asl #6
  and r1, ip, #7
  add r0, r0, r2
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  ldr r5, [sp, #68]
  cmp r2, #0
  ldrne r3, [sp, #68]
  add lr, lr, #1
  ldrneh  r3, [r3, #0]
  add r5, r5, #2
  strneh  r3, [r8, #0]  @ movhi
  cmp r9, lr
  mov ip, r0, asr #8
  add r8, r8, #2
  str r5, [sp, #68]
  bgt .L18844
  b .L18819
.L19642:
  rsb r0, r8, lr
  rsb lr, r0, fp
  cmp lr, #0
  ble .L18819
  ldr r1, [sp, #24]
  add r3, r8, fp
  cmp r1, r3
  bhi .L19387
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub r8, r7, r3, asl #6
  bne .L19389
  ldr r7, [sp, #124]
  ldr r5, [sp, #104]
.L19391:
  movs  r4, r7, lsr #3
  beq .L19449
  ldr r0, [sp, #68]
  mov r1, r5
  mov ip, r8
  mov lr, #0
.L19451:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L19452
  tst r2, #255
  ldrneh  r3, [r0, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r6, [r0, #4]
  mov r3, r2, lsr #16
  strneh  r6, [r1, #4]  @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #2]
  strneh  r3, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r6, [r0, #0]
  strneh  r6, [r1, #0]  @ movhi
.L19452:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L19461
  tst r2, #255
  ldrneh  r3, [r0, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r6, [r0, #12]
  mov r3, r2, lsr #16
  strneh  r6, [r1, #12] @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #10]
  strneh  r3, [r1, #10] @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r6, [r0, #8]
  strneh  r6, [r1, #8]  @ movhi
.L19461:
  add lr, lr, #1
  cmp lr, r4
  sub ip, ip, #64
  add r1, r1, #16
  add r0, r0, #16
  bne .L19451
  ldr ip, [sp, #68]
  mov r3, r4, asl #4
  rsb r2, r4, r4, asl #26
  add ip, ip, r3
  add r5, r5, r3
  add r8, r8, r2, asl #6
  str ip, [sp, #68]
.L19449:
  ands  ip, r7, #7
  beq .L18819
  cmp ip, #3
  ldrls r2, [r8, #4]
  bls .L19484
  ldr r2, [r8, #4]
  cmp r2, #0
  beq .L19474
  tst r2, #255
  ldrne lr, [sp, #68]
  mov r3, r2, lsr #8
  ldrneh  lr, [lr, #6]
  strneh  lr, [r5, #6]  @ movhi
  tst r3, #255
  ldrne r0, [sp, #68]
  mov r3, r2, lsr #16
  ldrneh  r0, [r0, #4]
  strneh  r0, [r5, #4]  @ movhi
  tst r3, #255
  ldrne r1, [sp, #68]
  ldrneh  r1, [r1, #2]
  strneh  r1, [r5, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r2, [sp, #68]
  ldrneh  r2, [r2, #0]
  strneh  r2, [r5, #0]  @ movhi
.L19474:
  subs  ip, ip, #4
  ldr r2, [r8, #0]
  beq .L18819
  ldr r3, [sp, #68]
  add r5, r5, #8
  add r3, r3, #8
  str r3, [sp, #68]
.L19484:
  mov r1, #0
.L19485:
  movs  r4, r2, lsr #24
  ldrne r6, [sp, #68]
  mov r0, r1, asl #1
  ldrneh  r6, [r0, r6]
  add r1, r1, #1
  strneh  r6, [r0, r5]  @ movhi
  cmp ip, r1
  mov r2, r2, asl #8
  bhi .L19485
  b .L18819
.L18985:
  cmp fp, #0
  add r3, fp, #7
  movge r3, fp
  movs  r3, r3, asr #3
  beq .L18819
  ldr r6, [sp, #20]
  mov r2, #0
  add r1, r6, r8, asl #1
  b .L19015
.L19646:
  ldr ip, [sp, #68]
  add r0, r0, #32
  add ip, ip, #16
  add r1, r1, #16
  str ip, [sp, #68]
.L19015:
  ldr ip, [r0, #0]
  cmp ip, #0
  beq .L19016
  tst ip, #15
  ldrne lr, [sp, #68]
  ldrneh  lr, [lr, #0]
  strneh  lr, [r1, #0]  @ movhi
  tst ip, #240
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst ip, #3840
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  tst ip, #61440
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
  tst ip, #983040
  ldrne lr, [sp, #68]
  ldrneh  lr, [lr, #8]
  strneh  lr, [r1, #8]  @ movhi
  tst ip, #15728640
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #10]
  strneh  r4, [r1, #10] @ movhi
  tst ip, #251658240
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #12]
  strneh  r5, [r1, #12] @ movhi
  movs  ip, ip, lsr #28
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #14]
  strneh  r6, [r1, #14] @ movhi
.L19016:
  add r2, r2, #1
  cmp r3, r2
  bne .L19646
  b .L18819
.L19115:
  cmp fp, #0
  add r3, fp, #7
  movge r3, fp
  movs  r3, r3, asr #3
  beq .L18819
  ldr ip, [sp, #20]
  add r1, ip, r8, asl #1
  mov ip, #0
  b .L19145
.L19647:
  ldr lr, [sp, #68]
  sub r0, r0, #32
  add lr, lr, #16
  add r1, r1, #16
  str lr, [sp, #68]
.L19145:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L19146
  tst r2, #15
  ldrne lr, [sp, #68]
  ldrneh  lr, [lr, #14]
  strneh  lr, [r1, #14] @ movhi
  tst r2, #240
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #12]
  strneh  r4, [r1, #12] @ movhi
  tst r2, #3840
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r1, #10] @ movhi
  tst r2, #61440
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #8]
  strneh  r6, [r1, #8]  @ movhi
  tst r2, #983040
  ldrne lr, [sp, #68]
  ldrneh  lr, [lr, #6]
  strneh  lr, [r1, #6]  @ movhi
  tst r2, #15728640
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  tst r2, #251658240
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r1, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r1, #0]  @ movhi
.L19146:
  add ip, ip, #1
  cmp r3, ip
  bne .L19647
  b .L18819
.L19540:
  cmp fp, #0
  add r3, fp, #7
  movge r3, fp
  movs  lr, r3, asr #3
  beq .L18819
  ldr r2, [sp, #20]
  ldr r3, .L19654+32
  add r1, r2, r8, asl #1
  add r0, r0, r3
  mov r2, #0
  b .L19584
.L19648:
  ldr ip, [sp, #68]
  sub r7, r7, #64
  add ip, ip, #16
  add r1, r1, #16
  str ip, [sp, #68]
.L19584:
  ldr ip, [r0, #68]
  cmp ip, #0
  beq .L19585
  tst ip, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r3, ip, lsr #16
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r1, #2]  @ movhi
  movs  ip, ip, lsr #24
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r1, #0]  @ movhi
.L19585:
  ldr ip, [r7, #0]
  cmp ip, #0
  beq .L19594
  tst ip, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r3, ip, lsr #16
  ldrneh  r4, [r4, #12]
  strneh  r4, [r1, #12] @ movhi
  tst r3, #255
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r1, #10] @ movhi
  movs  ip, ip, lsr #24
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #8]
  strneh  r6, [r1, #8]  @ movhi
.L19594:
  add r2, r2, #1
  cmp lr, r2
  sub r0, r0, #64
  bne .L19648
  b .L18819
.L19320:
  cmp fp, #0
  add r3, fp, #7
  movge r3, fp
  movs  r4, r3, asr #3
  beq .L18819
  ldr r3, [sp, #20]
  mov lr, #0
  add r1, r3, r8, asl #1
  ldr r3, .L19654+36
  add r0, r0, r3
  b .L19364
.L19649:
  ldr ip, [sp, #68]
  add r2, r2, #64
  add ip, ip, #16
  add r1, r1, #16
  str ip, [sp, #68]
.L19364:
  ldr ip, [r2, #0]
  cmp ip, #0
  beq .L19365
  tst ip, #255
  ldrne r5, [sp, #68]
  mov r3, ip, lsr #8
  ldrneh  r5, [r5, #0]
  strneh  r5, [r1, #0]  @ movhi
  tst r3, #255
  ldrne r6, [sp, #68]
  mov r3, ip, lsr #16
  ldrneh  r6, [r6, #2]
  strneh  r6, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r1, #4]  @ movhi
  movs  ip, ip, lsr #24
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #6]
  strneh  r5, [r1, #6]  @ movhi
.L19365:
  ldr ip, [r0, #-60]
  cmp ip, #0
  beq .L19374
  tst ip, #255
  ldrne r6, [sp, #68]
  mov r3, ip, lsr #8
  ldrneh  r6, [r6, #8]
  strneh  r6, [r1, #8]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #10]
  strneh  r3, [r1, #10] @ movhi
  mov r3, ip, lsr #16
  tst r3, #255
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #12]
  strneh  r5, [r1, #12] @ movhi
  movs  ip, ip, lsr #24
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #14]
  strneh  r6, [r1, #14] @ movhi
.L19374:
  add lr, lr, #1
  cmp r4, lr
  add r0, r0, #64
  bne .L19649
  b .L18819
.L19167:
  ands  r1, r0, #7
  mov r3, r0, lsr #3
  add ip, r2, r3, asl #6
  ldreq r1, [sp, #104]
  beq .L19271
  cmp r1, #3
  rsb r0, r1, #8
  bls .L19272
  cmp r0, #0
  ldr r2, [ip, #4]
  ldreq r1, [sp, #104]
  beq .L19276
  mov r3, r1, asl #3
  sub r3, r3, #32
  mov r3, r2, lsr r3
  mov r1, #0
.L19277:
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #104]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r0, r1
  mov r3, r3, lsr #8
  bne .L19277
  ldr r6, [sp, #68]
  mov r3, r0, asl #1
  ldr r0, [sp, #104]
  add r6, r6, r3
  str r6, [sp, #68]
  add r1, r0, r3
.L19276:
  add ip, ip, #64
.L19271:
  movs  lr, lr, lsr #3
  beq .L18819
  mov r0, #0
  b .L19300
.L19650:
  ldr r2, [sp, #68]
  add ip, ip, #64
  add r2, r2, #16
  add r1, r1, #16
  str r2, [sp, #68]
.L19300:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L19301
  tst r2, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
.L19301:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L19310
  tst r2, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #8]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #10]
  strneh  r4, [r1, #10] @ movhi
  tst r3, #255
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #12]
  strneh  r5, [r1, #12] @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #14]
  strneh  r6, [r1, #14] @ movhi
.L19310:
  add r0, r0, #1
  cmp r0, lr
  bne .L19650
  b .L18819
.L19037:
  mov r3, ip, lsr #3
  ands  r2, ip, #7
  sub r0, r0, r3, asl #5
  ldreq r3, [sp, #104]
  beq .L19086
  rsbs  r4, r2, #8
  ldr ip, [r0, #0]
  ldreq r3, [sp, #104]
  beq .L19089
  mov r3, r2, asl #2
  mov r3, ip, asl r3
  mov lr, #0
.L19090:
  movs  ip, r3, lsr #28
  ldrne r2, [sp, #68]
  mov ip, lr, asl #1
  ldrneh  r5, [ip, r2]
  ldrne r2, [sp, #104]
  add lr, lr, #1
  strneh  r5, [ip, r2]  @ movhi
  cmp lr, r4
  mov r3, r3, asl #4
  bne .L19090
  ldr r6, [sp, #68]
  mov r3, r4, asl #1
  ldr ip, [sp, #104]
  add r6, r6, r3
  str r6, [sp, #68]
  add r3, ip, r3
.L19089:
  sub r0, r0, #32
.L19086:
  movs  r1, r1, lsr #3
  beq .L18819
  mov r2, #0
  b .L19096
.L19651:
  ldr ip, [sp, #68]
  sub r0, r0, #32
  add ip, ip, #16
  add r3, r3, #16
  str ip, [sp, #68]
.L19096:
  ldr ip, [r0, #0]
  cmp ip, #0
  beq .L19097
  tst ip, #15
  ldrne lr, [sp, #68]
  ldrneh  lr, [lr, #14]
  strneh  lr, [r3, #14] @ movhi
  tst ip, #240
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #12]
  strneh  r4, [r3, #12] @ movhi
  tst ip, #3840
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r3, #10] @ movhi
  tst ip, #61440
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #8]
  strneh  r6, [r3, #8]  @ movhi
  tst ip, #983040
  ldrne lr, [sp, #68]
  ldrneh  lr, [lr, #6]
  strneh  lr, [r3, #6]  @ movhi
  tst ip, #15728640
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #4]
  strneh  r4, [r3, #4]  @ movhi
  tst ip, #251658240
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r3, #2]  @ movhi
  movs  ip, ip, lsr #28
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r3, #0]  @ movhi
.L19097:
  add r2, r2, #1
  cmp r2, r1
  bne .L19651
  b .L18819
.L18907:
  mov r3, ip, lsr #3
  mov r1, r3, asl #5
  ands  r3, ip, #7
  ldreq r3, [sp, #104]
  add ip, r0, r1
  beq .L18956
  rsbs  r4, r3, #8
  ldr r0, [r0, r1]
  ldreq r3, [sp, #104]
  beq .L18959
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  mov r2, #0
.L18960:
  tst r0, #15
  ldrne r1, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  r5, [r3, r1]
  ldrne r1, [sp, #104]
  add r2, r2, #1
  strneh  r5, [r3, r1]  @ movhi
  cmp r4, r2
  mov r0, r0, lsr #4
  bne .L18960
  ldr r6, [sp, #68]
  mov r3, r4, asl #1
  ldr r0, [sp, #104]
  add r6, r6, r3
  str r6, [sp, #68]
  add r3, r0, r3
.L18959:
  add ip, ip, #32
.L18956:
  movs  r0, lr, lsr #3
  beq .L18819
  mov r1, #0
  b .L18966
.L19652:
  ldr r2, [sp, #68]
  add ip, ip, #32
  add r2, r2, #16
  add r3, r3, #16
  str r2, [sp, #68]
.L18966:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L18967
  tst r2, #15
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #0]
  strneh  r4, [r3, #0]  @ movhi
  tst r2, #240
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r3, #2]  @ movhi
  tst r2, #3840
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #4]
  strneh  r6, [r3, #4]  @ movhi
  tst r2, #61440
  ldrne lr, [sp, #68]
  ldrneh  lr, [lr, #6]
  strneh  lr, [r3, #6]  @ movhi
  tst r2, #983040
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #8]
  strneh  r4, [r3, #8]  @ movhi
  tst r2, #15728640
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r3, #10] @ movhi
  tst r2, #251658240
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #12]
  strneh  r6, [r3, #12] @ movhi
  movs  r2, r2, lsr #28
  ldrne lr, [sp, #68]
  ldrneh  lr, [lr, #14]
  strneh  lr, [r3, #14] @ movhi
.L18967:
  add r1, r1, #1
  cmp r1, r0
  bne .L19652
  b .L18819
.L19387:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  sub ip, r7, r3, asl #6
  ldreq r1, [sp, #104]
  beq .L19491
  cmp r2, #3
  rsb r0, r2, #8
  bls .L19492
  cmp r0, #0
  ldr r1, [ip, #0]
  ldreq r1, [sp, #104]
  beq .L19496
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r3, r1, asl r3
  mov r1, #0
.L19497:
  movs  r2, r3, lsr #24
  ldrne r4, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #104]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r1, r0
  mov r3, r3, asl #8
  bne .L19497
  ldr r6, [sp, #68]
  mov r3, r0, asl #1
  ldr r0, [sp, #104]
  add r6, r6, r3
  str r6, [sp, #68]
  add r1, r0, r3
.L19496:
  sub ip, ip, #64
.L19491:
  movs  lr, lr, lsr #3
  beq .L18819
  mov r0, #0
  b .L19520
.L19653:
  ldr r2, [sp, #68]
  sub ip, ip, #64
  add r2, r2, #16
  add r1, r1, #16
  str r2, [sp, #68]
.L19520:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L19521
  tst r2, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r1, #0]  @ movhi
.L19521:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L19530
  tst r2, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #12]
  strneh  r4, [r1, #12] @ movhi
  tst r3, #255
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r1, #10] @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #8]
  strneh  r6, [r1, #8]  @ movhi
.L19530:
  add r0, r0, #1
  cmp r0, lr
  bne .L19653
  b .L18819
.L18909:
  ldr lr, [sp, #124]
  rsb ip, r3, #8
  cmp lr, ip
  bge .L18912
  cmp lr, #0
  ble .L18819
  ldr r2, [r0, r1]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  mov r2, #0
.L18916:
  tst r0, #15
  ldrne r1, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r1]
  ldr r5, [sp, #124]
  ldrne r1, [sp, #104]
  add r2, r2, #1
  strneh  r4, [r3, r1]  @ movhi
  cmp r5, r2
  mov r0, r0, lsr #4
  bne .L18916
  b .L18819
.L19389:
  ldr r2, [sp, #124]
  rsb lr, ip, #8
  cmp r2, lr
  bge .L19392
  cmp r2, #0
  ble .L18819
  cmp ip, #3
  bls .L19395
  ldr r2, [r8, #0]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L19398:
  movs  r3, r2, lsr #24
  ldrne r4, [sp, #68]
  mov r3, r1, asl #1
  ldrneh  r5, [r3, r4]
  ldr r6, [sp, #124]
  ldrne r4, [sp, #104]
  add r1, r1, #1
  strneh  r5, [r3, r4]  @ movhi
  cmp r6, r1
  mov r2, r2, asl #8
  bne .L19398
  b .L18819
.L19169:
  ldr r5, [sp, #124]
  rsb lr, ip, #8
  cmp r5, lr
  bge .L19172
  cmp r5, #0
  ble .L18819
  cmp ip, #3
  bls .L19175
  ldr r2, [r8, #4]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L19178:
  tst r1, #255
  ldrne r6, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  ip, [r3, r6]
  ldr lr, [sp, #124]
  ldrne r6, [sp, #104]
  add r2, r2, #1
  strneh  ip, [r3, r6]  @ movhi
  cmp lr, r2
  mov r1, r1, lsr #8
  bne .L19178
  b .L18819
.L19039:
  ldr r3, [sp, #124]
  rsb lr, r4, #8
  cmp r3, lr
  bge .L19042
  cmp r3, #0
  ble .L18819
  ldr r2, [r0, #0]
  mov r3, r4, asl #2
  mov r0, r2, asl r3
  mov r2, #0
.L19046:
  movs  r4, r0, lsr #28
  ldrne r5, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  r6, [r3, r5]
  ldr ip, [sp, #124]
  ldrne r5, [sp, #104]
  add r2, r2, #1
  strneh  r6, [r3, r5]  @ movhi
  cmp ip, r2
  mov r0, r0, asl #4
  bne .L19046
  b .L18819
.L19172:
  cmp ip, #3
  bls .L19202
  cmp lr, #0
  ldr r2, [r8, #4]
  ldreq r5, [sp, #104]
  beq .L19206
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L19207:
  tst r1, #255
  ldrne r0, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r0]
  ldrne r0, [sp, #104]
  add r2, r2, #1
  strneh  r4, [r3, r0]  @ movhi
  cmp lr, r2
  mov r1, r1, lsr #8
  bne .L19207
  ldr r5, [sp, #68]
  mov r3, lr, asl #1
  ldr r6, [sp, #104]
  add r5, r5, r3
  str r5, [sp, #68]
  add r5, r3, r6
.L19206:
  ldr ip, [sp, #124]
  add r8, r8, #64
  rsb r7, lr, ip
  b .L19171
.L19272:
  subs  r4, r0, #4
  ldr r2, [ip, #0]
  ldreq r1, [sp, #104]
  beq .L19284
  mov r3, r1, asl #3
  mov r3, r2, lsr r3
  mov r1, #0
.L19285:
  tst r3, #255
  ldrne r5, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  r6, [r2, r5]
  ldrne r5, [sp, #104]
  add r1, r1, #1
  strneh  r6, [r2, r5]  @ movhi
  cmp r1, r4
  mov r3, r3, lsr #8
  bne .L19285
  mov r3, r0, asl #1
  ldr r0, [sp, #68]
  ldr r1, [sp, #104]
  add r2, r0, r3
  sub r2, r2, #8
  add r3, r1, r3
  str r2, [sp, #68]
  sub r1, r3, #8
.L19284:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L19290
  tst r2, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
.L19290:
  ldr r0, [sp, #68]
  add r1, r1, #8
  add r0, r0, #8
  add ip, ip, #64
  str r0, [sp, #68]
  b .L19271
.L18912:
  cmp ip, #0
  ldr r2, [r4, #0]
  ldreq r5, [sp, #104]
  beq .L18922
  mov r3, r3, asl #2
  mov r3, r2, lsr r3
  mov r1, #0
.L18923:
  tst r3, #15
  ldrne r6, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  lr, [r2, r6]
  ldrne r6, [sp, #104]
  add r1, r1, #1
  strneh  lr, [r2, r6]  @ movhi
  cmp ip, r1
  mov r3, r3, lsr #4
  bne .L18923
  ldr r0, [sp, #68]
  mov r3, ip, asl #1
  ldr r1, [sp, #104]
  add r0, r0, r3
  str r0, [sp, #68]
  add r5, r3, r1
.L18922:
  ldr r2, [sp, #124]
  add r4, r4, #32
  rsb r7, ip, r2
  b .L18911
.L19042:
  cmp lr, #0
  ldr r2, [r0, #0]
  ldreq r1, [sp, #104]
  beq .L19052
  mov r3, r4, asl #2
  mov r3, r2, asl r3
  mov ip, #0
.L19053:
  movs  r1, r3, lsr #28
  ldrne r4, [sp, #68]
  mov r2, ip, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #104]
  add ip, ip, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp lr, ip
  mov r3, r3, asl #4
  bne .L19053
  ldr r6, [sp, #68]
  mov r3, lr, asl #1
  ldr ip, [sp, #104]
  add r6, r6, r3
  str r6, [sp, #68]
  add r1, r3, ip
.L19052:
  ldr r2, [sp, #124]
  sub r0, r0, #32
  rsb r7, lr, r2
  b .L19041
.L19492:
  subs  r4, r0, #4
  ldr r1, [ip, #4]
  ldreq r1, [sp, #104]
  beq .L19504
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r3, r1, asl r3
  mov r1, #0
.L19505:
  movs  r2, r3, lsr #24
  ldrne r5, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  r6, [r2, r5]
  ldrne r5, [sp, #104]
  add r1, r1, #1
  strneh  r6, [r2, r5]  @ movhi
  cmp r1, r4
  mov r3, r3, asl #8
  bne .L19505
  mov r3, r0, asl #1
  ldr r0, [sp, #68]
  ldr r1, [sp, #104]
  add r2, r0, r3
  sub r2, r2, #8
  add r3, r1, r3
  str r2, [sp, #68]
  sub r1, r3, #8
.L19504:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L19510
  tst r2, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #68]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r1, #0]  @ movhi
.L19510:
  ldr r0, [sp, #68]
  add r1, r1, #8
  add r0, r0, #8
  sub ip, ip, #64
  str r0, [sp, #68]
  b .L19491
.L19392:
  cmp ip, #3
  bls .L19422
  cmp lr, #0
  ldr r2, [r8, #0]
  ldreq r5, [sp, #104]
  beq .L19426
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r3, r2, asl r3
  mov r1, #0
.L19427:
  movs  r0, r3, lsr #24
  ldrne r4, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #104]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp lr, r1
  mov r3, r3, asl #8
  bne .L19427
  ldr r6, [sp, #68]
  mov r3, lr, asl #1
  ldr ip, [sp, #104]
  add r6, r6, r3
  str r6, [sp, #68]
  add r5, ip, r3
.L19426:
  ldr ip, [sp, #124]
  sub r8, r8, #64
  rsb r7, lr, ip
  b .L19391
.L19638:
  mov r7, #0
  b .L18889
.L19634:
  mov r7, #0
  b .L18854
.L19202:
  subs  r0, lr, #4
  ldr r2, [r8, #0]
  ldreq r1, [sp, #104]
  beq .L19214
  mov r3, ip, asl #3
  mov r1, r2, lsr r3
  mov r2, #0
.L19215:
  tst r1, #255
  ldrne ip, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, ip]
  ldrne ip, [sp, #104]
  add r2, r2, #1
  strneh  r4, [r3, ip]  @ movhi
  cmp r2, r0
  mov r1, r1, lsr #8
  bne .L19215
  ldr r5, [sp, #68]
  mov r3, lr, asl #1
  ldr r6, [sp, #104]
  add r2, r5, r3
  sub r2, r2, #8
  add r3, r6, r3
  str r2, [sp, #68]
  sub r1, r3, #8
.L19214:
  ldr r2, [r8, #4]
  cmp r2, #0
  beq .L19220
  tst r2, #255
  ldrne ip, [sp, #68]
  mov r3, r2, lsr #8
  ldrneh  ip, [ip, #0]
  strneh  ip, [r1, #0]  @ movhi
  tst r3, #255
  ldrne r0, [sp, #68]
  mov r3, r2, lsr #16
  ldrneh  r0, [r0, #2]
  strneh  r0, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #6]
  strneh  r4, [r1, #6]  @ movhi
.L19220:
  ldr r6, [sp, #68]
  add r5, r1, #8
  add r6, r6, #8
  str r6, [sp, #68]
  b .L19206
.L19422:
  subs  r0, lr, #4
  ldr r2, [r8, #4]
  ldreq r1, [sp, #104]
  beq .L19434
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r3, r2, asl r3
  mov r1, #0
.L19435:
  movs  r2, r3, lsr #24
  ldrne r4, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #104]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r1, r0
  mov r3, r3, asl #8
  bne .L19435
  ldr r6, [sp, #68]
  mov r3, lr, asl #1
  ldr ip, [sp, #104]
  add r2, r6, r3
  sub r2, r2, #8
  add r3, ip, r3
  str r2, [sp, #68]
  sub r1, r3, #8
.L19434:
  ldr r2, [r8, #0]
  cmp r2, #0
  beq .L19440
  tst r2, #255
  ldrne r0, [sp, #68]
  mov r3, r2, lsr #8
  ldrneh  r0, [r0, #6]
  strneh  r0, [r1, #6]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #68]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  tst r3, #255
  ldrne r4, [sp, #68]
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r5, [sp, #68]
  ldrneh  r5, [r5, #0]
  strneh  r5, [r1, #0]  @ movhi
.L19440:
  ldr r6, [sp, #68]
  add r5, r1, #8
  add r6, r6, #8
  str r6, [sp, #68]
  b .L19426
.L19641:
  mov r1, r9
  b .L19620
.L19640:
  mov lr, r6
  b .L19618
.L19175:
  ldr r0, [sp, #124]
  ldr r3, [r8, #0]
  add r2, r0, ip
  mov r1, ip, asl #3
  cmp r2, #4
  mov r3, r3, lsr r1
  bhi .L19182
  cmp r0, #0
  movne r1, #0
  beq .L18819
.L19198:
  tst r3, #255
  ldrne r5, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  r6, [r2, r5]
  ldr ip, [sp, #124]
  ldrne r5, [sp, #104]
  add r1, r1, #1
  strneh  r6, [r2, r5]  @ movhi
  cmp ip, r1
  mov r3, r3, lsr #8
  bne .L19198
  b .L18819
.L19395:
  ldr lr, [sp, #124]
  mov r3, ip, asl #3
  ldr r1, [r8, #4]
  add r2, lr, ip
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L19402
  cmp lr, #0
  movne r2, #0
  beq .L18819
.L19418:
  movs  r5, r1, lsr #24
  ldrne r6, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  ip, [r3, r6]
  ldr lr, [sp, #124]
  ldrne r6, [sp, #104]
  add r2, r2, #1
  strneh  ip, [r3, r6]  @ movhi
  cmp lr, r2
  mov r1, r1, asl #8
  bne .L19418
  b .L18819
.L19182:
  rsbs  r0, ip, #4
  ldreq ip, [sp, #104]
  beq .L19187
  mov r1, #0
.L19188:
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #104]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r1, r0
  mov r3, r3, lsr #8
  bne .L19188
  ldr r6, [sp, #68]
  mov r3, r0, asl #1
  ldr lr, [sp, #104]
  add r6, r6, r3
  str r6, [sp, #68]
  add ip, r3, lr
.L19187:
  ldr r1, [sp, #124]
  ldr r3, [r8, #4]
  subs  r0, r1, r0
  beq .L18819
  mov r1, #0
.L19194:
  tst r3, #255
  ldrne r4, [sp, #68]
  mov r2, r1, asl #1
  ldrneh  r4, [r2, r4]
  add r1, r1, #1
  strneh  r4, [r2, ip]  @ movhi
  cmp r1, r0
  mov r3, r3, lsr #8
  bne .L19194
  b .L18819
.L19402:
  rsbs  r0, ip, #4
  ldreq r3, [sp, #104]
  beq .L19407
  mov r2, #0
.L19408:
  movs  r3, r1, lsr #24
  ldrne r4, [sp, #68]
  mov r3, r2, asl #1
  ldrneh  r5, [r3, r4]
  ldrne r4, [sp, #104]
  add r2, r2, #1
  strneh  r5, [r3, r4]  @ movhi
  cmp r2, r0
  mov r1, r1, asl #8
  bne .L19408
  ldr r6, [sp, #68]
  mov r3, r0, asl #1
  ldr ip, [sp, #104]
  add r6, r6, r3
  str r6, [sp, #68]
  add r3, r3, ip
.L19407:
  ldr lr, [sp, #124]
  ldr r2, [r8, #0]
  subs  ip, lr, r0
  beq .L18819
  mov r0, #0
.L19414:
  movs  r1, r2, lsr #24
  ldrne r4, [sp, #68]
  mov r1, r0, asl #1
  ldrneh  r4, [r1, r4]
  add r0, r0, #1
  strneh  r4, [r1, r3]  @ movhi
  cmp r0, ip
  mov r2, r2, asl #8
  bne .L19414
  b .L18819
  .size render_scanline_obj_copy_tile_2D, .-render_scanline_obj_copy_tile_2D
  .align  2
  .global render_scanline_obj_copy_tile_1D
  .type render_scanline_obj_copy_tile_1D, %function
render_scanline_obj_copy_tile_1D:
  @ args = 0, pretend = 0, frame = 592
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r5, .L20498
  add r0, r0, r0, asl #2
  ldrh  r4, [r5, #6]
  ldr ip, .L20498+4
  add r0, r4, r0, asl #5
  ldrh  r6, [r5, #0]
  sub sp, sp, #604
  ldr ip, [ip, r0, asl #2]
  str r6, [sp, #44]
  str ip, [sp, #68]
  cmp ip, #0
  ldr ip, [sp, #44]
  ldrh  r6, [r5, #74]
  str r4, [sp, #64]
  ldr lr, .L20498+8
  and r4, ip, #7
  ldr ip, .L20498+12
  ldrh  r5, [r5, #80]
  add r4, ip, r4, asl #7
  add r0, lr, r0, asl #7
  mov r6, r6, lsr #8
  str r4, [sp, #52]
  str r0, [sp, #72]
  str r1, [sp, #20]
  str r2, [sp, #16]
  str r3, [sp, #12]
  str r6, [sp, #48]
  str r5, [sp, #40]
  beq .L20448
  rsb r0, r1, r2
  add lr, r3, r1, asl #1
  mov r1, #0
  mov r2, r1
  str lr, [sp, #100]
  str r0, [sp, #120]
  str r1, [sp, #60]
  b .L19659
.L19663:
  ldr lr, [sp, #60]
  ldr r0, [sp, #68]
  add lr, lr, #1
  cmp r0, lr
  str lr, [sp, #60]
  beq .L20448
  ldr r2, [sp, #60]
.L19659:
  ldr r4, [sp, #72]
  ldr r5, .L20498+16
  ldrb  r3, [r2, r4]  @ zero_extendqisi2
  ldr lr, .L20498+20
  mov r3, r3, asl #3
  ldrh  r6, [r3, r5]
  add r3, r3, r5
  ldrh  r7, [r3, #2]
  mov fp, r6, lsr #12
  and r2, fp, #12
  orr sl, r2, r7, lsr #14
  mov r1, r7, asl #23
  ldr r9, [lr, sl, asl #2]
  ands  ip, r6, #512
  mov r8, r1, asr #23
  ldr r0, [sp, #16]
  ldr r5, [sp, #20]
  addne r1, r8, r9, asl #1
  addeq r1, r8, r9
  ldrh  r3, [r3, #4]
  ldr r2, [sp, #20]
  cmp r8, r5
  movcs r5, r8
  cmp r1, r0
  movcs r1, r0
  str r3, [sp, #24]
  cmp r0, r5
  movls r3, #0
  movhi r3, #1
  cmp r2, r1
  movcs r3, #0
  cmp r3, #0
  str ip, [sp, #28]
  beq .L19663
  ldr ip, [sp, #44]
  add r4, sp, #124
  str ip, [sp, #0]
  ldr lr, [sp, #40]
  ldr ip, [sp, #52]
  mov r0, r5
  ldr r3, [sp, #48]
  mov r2, r4
  str lr, [sp, #4]
  str ip, [sp, #8]
  bl  render_scanline_conditional_tile
  and r0, r6, #255
  cmp r0, #160
  ldr r3, .L20498+24
  add r5, r4, r5, asl #1
  subgt r0, r0, #256
  tst r6, #256
  str r5, [sp, #56]
  ldr sl, [r3, sl, asl #2]
  beq .L19667
  tst r6, #8192
  beq .L19669
  mov r3, r7, lsr #4
  ldr r1, .L20498+16
  ldr lr, [sp, #28]
  and r3, r3, #992
  add r3, r3, r1
  add r1, sl, sl, lsr #31
  cmp lr, #0
  ldrh  r4, [r3, #30]
  mov lr, r1, asr #1
  add r2, r9, r9, lsr #31
  ldr r1, [sp, #20]
  mov ip, r2, asr #1
  str r4, [sp, #32]
  moveq fp, r9
  moveq r5, ip
  moveq r4, lr
  movne fp, r9, asl #1
  movne r5, ip, asl #1
  movne r4, lr, asl #1
  cmp r8, r1
  ldrh  r7, [r3, #6]
  ldrh  r2, [r3, #14]
  ldrh  r6, [r3, #22]
  bge .L19674
  rsb r1, r8, r1
  rsb fp, r1, fp
  cmp fp, #0
  ble .L19663
  ldr r8, [sp, #20]
  rsb r5, r1, r5
.L19674:
  ldr r1, [sp, #16]
  add r3, r8, fp
  cmp r3, r1
  bge .L20476
.L19677:
  add r0, r0, r4
  ldr r4, [sp, #32]
  mov ip, ip, asl #8
  mov r1, r4, asl #16
  mov r3, r7, asl #16
  mov r4, r1, asr #16
  str ip, [sp, #108]
  ldr r1, [sp, #64]
  mov ip, lr, asl #8
  ldr lr, [sp, #12]
  mov r2, r2, asl #16
  mov r3, r3, asr #16
  cmp r6, #0
  add r8, lr, r8, asl #1
  str r3, [sp, #76]
  mov r7, r2, asr #16
  rsb lr, r0, r1
  beq .L20477
  ldr r0, [sp, #24]
  cmp r9, #0
  add r1, r9, #7
  mov r2, r0, asl #22
  movge r1, r9
  ldr r3, .L20498+28
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #6
  cmp fp, #0
  str r2, [sp, #116]
  str r1, [sp, #80]
  ble .L19663
  mov r3, r6, asl #16
  mov r6, r3, asr #16
  ldr r0, [sp, #76]
  mul r2, lr, r4
  mul r1, r6, r5
  mul r3, lr, r7
  mul r0, r5, r0
  rsb r2, r1, r2
  ldr r1, [sp, #108]
  rsb r3, r0, r3
  add r5, r1, r3
  add r4, ip, r2
  mov lr, r5, asr #8
  mov ip, r4, asr #8
  cmp lr, r9
  cmpcc ip, sl
  movcs r3, #0
  movcc r3, #1
  movcs r7, r3
  bcc .L20478
.L19695:
  ldr r3, [sp, #56]
  ldr r2, [sp, #76]
  add r7, r7, #1
  add r5, r5, r2
  add r4, r4, r6
  add r3, r3, #2
  cmp fp, r7
  mov lr, r5, asr #8
  mov ip, r4, asr #8
  add r8, r8, #2
  str r3, [sp, #56]
  beq .L19663
  cmp lr, r9
  cmpcc ip, sl
  bcs .L19695
  cmp ip, sl
  cmpcc lr, r9
  bcs .L19663
.L20479:
  ldr r0, [sp, #76]
  and r3, ip, #7
  mov r2, lr, asr #3
  ldr r1, [sp, #116]
  mov r3, r3, asl #3
  add r5, r5, r0
  add r3, r3, r2, asl #6
  ldr r0, [sp, #80]
  mov r2, ip, asr #3
  add r3, r3, r1
  mla r0, r2, r0, r3
  and r1, lr, #7
  ldrb  r3, [r0, r1]  @ zero_extendqisi2
  add r7, r7, #1
  cmp r3, #0
  ldrne r2, [sp, #56]
  ldr r3, [sp, #56]
  ldrneh  r2, [r2, #0]
  add r4, r4, r6
  strneh  r2, [r8, #0]  @ movhi
  add r3, r3, #2
  cmp fp, r7
  mov ip, r4, asr #8
  mov lr, r5, asr #8
  add r8, r8, #2
  str r3, [sp, #56]
  ble .L19663
.L19698:
  cmp ip, sl
  cmpcc lr, r9
  bcc .L20479
  b .L19663
.L19667:
  ldr lr, [sp, #64]
  tst r7, #8192
  rsb ip, r0, lr
  rsbne r3, ip, sl
  subne ip, r3, #1
  mov r2, r7, asl #19
  and r3, fp, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L19663
  .p2align 2
.L19747:
  .word .L19743
  .word .L19744
  .word .L19745
  .word .L19746
.L20448:
  add sp, sp, #604
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L19669:
  ldr r5, .L20498+16
  mov r3, r7, lsr #4
  and r3, r3, #992
  add r3, r3, r5
  ldr r4, [sp, #28]
  add r1, sl, sl, lsr #31
  ldrh  r6, [r3, #30]
  mov lr, r1, asr #1
  add r2, r9, r9, lsr #31
  ldr r1, [sp, #20]
  cmp r4, #0
  mov ip, r2, asr #1
  str r6, [sp, #36]
  moveq r5, ip
  moveq r6, r9
  moveq r4, lr
  movne r6, r9, asl #1
  movne r5, ip, asl #1
  movne r4, lr, asl #1
  cmp r8, r1
  ldrh  r7, [r3, #6]
  ldrh  r2, [r3, #14]
  ldrh  fp, [r3, #22]
  bge .L19706
  rsb r1, r8, r1
  rsb r6, r1, r6
  cmp r6, #0
  ble .L19663
  ldr r8, [sp, #20]
  rsb r5, r1, r5
.L19706:
  ldr r1, [sp, #16]
  add r3, r8, r6
  cmp r3, r1
  bge .L20480
.L19709:
  add r0, r0, r4
  ldr r4, [sp, #36]
  mov ip, ip, asl #8
  mov r1, r4, asl #16
  mov r3, r7, asl #16
  mov r2, r2, asl #16
  mov r4, r1, asr #16
  str ip, [sp, #104]
  ldr r1, [sp, #64]
  mov ip, lr, asl #8
  ldr lr, [sp, #12]
  mov r3, r3, asr #16
  mov r2, r2, asr #16
  cmp fp, #0
  add r8, lr, r8, asl #1
  str r3, [sp, #84]
  str r2, [sp, #88]
  rsb lr, r0, r1
  beq .L20481
  ldr r0, [sp, #24]
  cmp r9, #0
  add r1, r9, #7
  mov r2, r0, asl #22
  movge r1, r9
  ldr r3, .L20498+28
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #5
  cmp r6, #0
  str r2, [sp, #112]
  str r1, [sp, #96]
  ble .L19663
  mov r3, fp, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #92]
  ldr r1, [sp, #92]
  ldr r3, [sp, #88]
  ldr r0, [sp, #84]
  mul r2, lr, r4
  mul r1, r5, r1
  mul r3, lr, r3
  mul r0, r5, r0
  rsb r2, r1, r2
  ldr r1, [sp, #104]
  rsb r3, r0, r3
  add r5, r1, r3
  add r4, ip, r2
  mov lr, r5, asr #8
  mov r3, r4, asr #8
  cmp lr, r9
  cmpcc r3, sl
  movcs r2, #0
  movcc r2, #1
  movcs r7, r2
  bcc .L20482
.L19730:
  ldr r3, [sp, #92]
  ldr ip, [sp, #56]
  ldr r2, [sp, #84]
  add r7, r7, #1
  add r5, r5, r2
  add r4, r4, r3
  add ip, ip, #2
  cmp r6, r7
  mov lr, r5, asr #8
  mov r3, r4, asr #8
  add r8, r8, #2
  str ip, [sp, #56]
  beq .L19663
  cmp lr, r9
  cmpcc r3, sl
  bcs .L19730
  cmp r3, sl
  cmpcc lr, r9
  bcs .L19663
.L20483:
  ldr r1, [sp, #112]
  and r0, r3, #7
  ldr r2, [sp, #96]
  add r0, r1, r0, asl #2
  and r1, r3, #7
  mov r3, r3, asr #3
  mov ip, lr, asr #1
  mul r2, r3, r2
  and fp, ip, #3
  ldr ip, [sp, #112]
  mov r3, lr, asr #1
  add r1, ip, r1, asl #2
  and ip, r3, #3
  mov r3, lr, asr #3
  add r2, r2, r3, asl #5
  add r3, r0, r2
  tst lr, #1
  add r0, r1, r2
  ldreqb  r3, [r0, ip]  @ zero_extendqisi2
  ldrneb  r3, [r3, fp]  @ zero_extendqisi2
  andeq r0, r3, #15
  movne r0, r3, lsr #4
  cmp r0, #0
  ldrne r2, [sp, #56]
  ldr lr, [sp, #84]
  ldrneh  r2, [r2, #0]
  ldr ip, [sp, #56]
  ldr r1, [sp, #92]
  add r7, r7, #1
  strneh  r2, [r8, #0]  @ movhi
  add r5, r5, lr
  add r4, r4, r1
  add ip, ip, #2
  cmp r6, r7
  mov lr, r5, asr #8
  mov r3, r4, asr #8
  add r8, r8, #2
  str ip, [sp, #56]
  ble .L19663
.L19733:
  cmp r3, sl
  cmpcc lr, r9
  bcc .L20483
  b .L19663
.L20480:
  rsb r6, r8, r1
  cmp r6, #0
  bgt .L19709
  b .L19663
.L20476:
  rsb fp, r8, r1
  cmp fp, #0
  bgt .L19677
  b .L19663
.L20477:
  mla r3, lr, r4, ip
  mov r0, r3, asr #8
  cmp r0, sl
  bcs .L19663
  cmp r9, #0
  ldr r4, [sp, #24]
  add r3, r9, #7
  movge r3, r9
  mov r2, r4, asl #22
  mov r3, r3, asr #3
  mov r3, r3, asl #1
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L20498+28
  add r0, r0, ip, asl #2
  cmp fp, #0
  add r4, r3, r0, asl #3
  ble .L19663
  ldr r2, [sp, #76]
  mul r3, lr, r7
  mul r2, r5, r2
  ldr r5, [sp, #108]
  rsb r3, r2, r3
  add r0, r5, r3
  mov ip, r0, asr #8
  cmp ip, r9
  movcs lr, r6
  bcc .L20484
.L19685:
  ldr r1, [sp, #56]
  ldr r6, [sp, #76]
  add lr, lr, #1
  add r0, r0, r6
  add r1, r1, #2
  cmp fp, lr
  mov ip, r0, asr #8
  add r8, r8, #2
  str r1, [sp, #56]
  beq .L19663
  cmp ip, r9
  bcs .L19685
  b .L20462
.L20481:
  mla r3, lr, r4, ip
  mov r0, r3, asr #8
  cmp r0, sl
  bcs .L19663
  ldr r4, [sp, #24]
  cmp r9, #0
  add r3, r9, #7
  mov r2, r4, asl #22
  movge r3, r9
  mov r3, r3, asr #3
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L20498+28
  add r0, r0, ip, asl #3
  cmp r6, #0
  add r7, r3, r0, asl #2
  ble .L19663
  ldr r3, [sp, #88]
  ldr r2, [sp, #84]
  mul r3, lr, r3
  mul r2, r5, r2
  ldr r5, [sp, #104]
  rsb r3, r2, r3
  add r0, r5, r3
  mov ip, r0, asr #8
  cmp ip, r9
  movcs r1, fp
  bcc .L20485
.L19717:
  ldr ip, [sp, #84]
  ldr lr, [sp, #56]
  add r1, r1, #1
  add r0, r0, ip
  add lr, lr, #2
  cmp r6, r1
  mov ip, r0, asr #8
  add r8, r8, #2
  str lr, [sp, #56]
  beq .L19663
  cmp ip, r9
  bcs .L19717
  b .L20464
.L19746:
  cmp r9, #0
  add r2, r9, #7
  movge r2, r9
  subs  r3, r9, #8
  submi r3, r9, #1
  mov lr, r2, asr #3
  mov r3, r3, asr #3
  mov r1, ip, lsr #3
  mla r0, lr, r1, r3
  ldr r1, [sp, #24]
  and r3, ip, #7
  mov r2, r1, asl #22
  mov r2, r2, lsr #22
  add r2, r2, r0, asl #1
  add r3, r3, r2, asl #2
  ldr r2, [sp, #20]
  mov r0, r3, asl #3
  ldr r3, .L20498+28
  cmp r8, r2
  add r7, r0, r3
  blt .L20486
  ldr r4, [sp, #16]
  add r3, r8, r9
  cmp r4, r3
  bhi .L20384
  rsb r9, r8, r4
  cmp r9, #0
  ble .L19663
  ldr r5, [sp, #12]
  movs  sl, r9, lsr #3
  add r1, r5, r8, asl #1
  beq .L20387
  ldr r3, .L20498+32
  ldr r4, [sp, #56]
  add r0, r0, r3
  mov lr, r1
  mov r5, r7
  mov r2, #0
.L20389:
  ldr ip, [r0, #68]
  cmp ip, #0
  beq .L20390
  tst ip, #255
  ldrneh  r6, [r4, #6]
  mov r3, ip, lsr #8
  strneh  r6, [lr, #6]  @ movhi
  tst r3, #255
  ldrneh  r3, [r4, #4]
  strneh  r3, [lr, #4]  @ movhi
  mov r3, ip, lsr #16
  tst r3, #255
  ldrneh  r6, [r4, #2]
  strneh  r6, [lr, #2]  @ movhi
  movs  ip, ip, lsr #24
  ldrneh  ip, [r4, #0]
  strneh  ip, [lr, #0]  @ movhi
.L20390:
  ldr ip, [r5, #0]
  cmp ip, #0
  beq .L20399
  tst ip, #255
  ldrneh  r3, [r4, #14]
  strneh  r3, [lr, #14] @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r6, [r4, #12]
  mov r3, ip, lsr #16
  strneh  r6, [lr, #12] @ movhi
  tst r3, #255
  ldrneh  r3, [r4, #10]
  strneh  r3, [lr, #10] @ movhi
  movs  ip, ip, lsr #24
  ldrneh  r6, [r4, #8]
  strneh  r6, [lr, #8]  @ movhi
.L20399:
  add r2, r2, #1
  cmp sl, r2
  sub r5, r5, #64
  add lr, lr, #16
  add r4, r4, #16
  sub r0, r0, #64
  bne .L20389
  ldr ip, [sp, #56]
  mov r3, sl, asl #4
  rsb r2, sl, sl, asl #26
  add ip, ip, r3
  add r1, r1, r3
  add r7, r7, r2, asl #6
  str ip, [sp, #56]
.L20387:
  ands  ip, r9, #7
  beq .L19663
  cmp ip, #3
  ldrls r2, [r7, #4]
  bls .L20422
  ldr r2, [r7, #4]
  cmp r2, #0
  beq .L20412
  tst r2, #255
  ldrne lr, [sp, #56]
  mov r3, r2, lsr #8
  ldrneh  lr, [lr, #6]
  strneh  lr, [r1, #6]  @ movhi
  tst r3, #255
  ldrne r0, [sp, #56]
  mov r3, r2, lsr #16
  ldrneh  r0, [r0, #4]
  strneh  r0, [r1, #4]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #2]
  strneh  r3, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #0]
  strneh  r4, [r1, #0]  @ movhi
.L20412:
  subs  ip, ip, #4
  ldr r2, [r7, #0]
  beq .L19663
  ldr r5, [sp, #56]
  add r1, r1, #8
  add r5, r5, #8
  str r5, [sp, #56]
.L20422:
  mov r3, #0
.L20423:
  movs  r6, r2, lsr #24
  ldrne lr, [sp, #56]
  mov r0, r3, asl #1
  ldrneh  lr, [r0, lr]
  add r3, r3, #1
  strneh  lr, [r0, r1]  @ movhi
  cmp ip, r3
  mov r2, r2, asl #8
  bhi .L20423
  b .L19663
.L19743:
  ldr r0, [sp, #24]
  cmp r9, #0
  add r3, r9, #7
  mov r2, r0, asl #22
  movge r3, r9
  mov lr, r3, asr #3
  mov r2, r2, lsr #22
  mov r3, ip, lsr #3
  mla r0, lr, r3, r2
  ldr r2, [sp, #20]
  and r1, ip, #7
  ldr r3, .L20498+28
  add r1, r1, r0, asl #3
  cmp r8, r2
  add r0, r3, r1, asl #2
  blt .L20487
  ldr r4, [sp, #16]
  add r3, r8, r9
  cmp r4, r3
  bhi .L19829
  rsb r7, r8, r4
  cmp r7, #0
  ble .L19663
  ldr r6, [sp, #12]
  movs  r5, r7, lsr #3
  add r1, r6, r8, asl #1
  beq .L19832
  ldr lr, [sp, #56]
  mov ip, r1
  mov r4, r0
  mov r2, #0
.L19834:
  ldr r3, [r4, #0]
  cmp r3, #0
  beq .L19835
  tst r3, #15
  ldrneh  r6, [lr, #0]
  strneh  r6, [ip, #0]  @ movhi
  tst r3, #240
  ldrneh  r6, [lr, #2]
  strneh  r6, [ip, #2]  @ movhi
  tst r3, #3840
  ldrneh  r6, [lr, #4]
  strneh  r6, [ip, #4]  @ movhi
  tst r3, #61440
  ldrneh  r6, [lr, #6]
  strneh  r6, [ip, #6]  @ movhi
  tst r3, #983040
  ldrneh  r6, [lr, #8]
  strneh  r6, [ip, #8]  @ movhi
  tst r3, #15728640
  ldrneh  r6, [lr, #10]
  strneh  r6, [ip, #10] @ movhi
  tst r3, #251658240
  ldrneh  r6, [lr, #12]
  strneh  r6, [ip, #12] @ movhi
  movs  r3, r3, lsr #28
  ldrneh  r3, [lr, #14]
  strneh  r3, [ip, #14] @ movhi
.L19835:
  add r2, r2, #1
  cmp r2, r5
  add r4, r4, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L19834
  ldr r4, [sp, #56]
  mov r3, r5, asl #4
  add r4, r4, r3
  add r1, r1, r3
  add r0, r0, r5, asl #5
  str r4, [sp, #56]
.L19832:
  ands  ip, r7, #7
  beq .L19663
  ldr r0, [r0, #0]
  mov r2, #0
.L19854:
  tst r0, #15
  ldrne r5, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  r5, [r3, r5]
  add r2, r2, #1
  strneh  r5, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, lsr #4
  bne .L19854
  b .L19663
.L19744:
  ldr lr, [sp, #24]
  cmp r9, #0
  add r3, r9, #7
  mov r2, lr, asl #22
  movge r3, r9
  mov lr, r3, asr #3
  mov r2, r2, lsr #22
  mov r1, ip, lsr #3
  mla r0, lr, r1, r2
  subs  r3, r9, #8
  submi r3, r9, #1
  add r0, r0, r3, asr #3
  and r2, ip, #7
  add r2, r2, r0, asl #3
  ldr r0, [sp, #20]
  ldr r3, .L20498+28
  cmp r8, r0
  add r0, r3, r2, asl #2
  blt .L20488
  ldr r1, [sp, #16]
  add r3, r8, r9
  cmp r1, r3
  bhi .L19959
  rsb r7, r8, r1
  cmp r7, #0
  ble .L19663
  ldr r2, [sp, #12]
  movs  r3, r7, lsr #3
  add r1, r2, r8, asl #1
  beq .L19962
  ldr lr, [sp, #56]
  mov ip, r1
  mov r4, r0
  mov r5, #0
.L19964:
  ldr r2, [r4, #0]
  cmp r2, #0
  beq .L19965
  tst r2, #15
  ldrneh  r6, [lr, #14]
  strneh  r6, [ip, #14] @ movhi
  tst r2, #240
  ldrneh  r6, [lr, #12]
  strneh  r6, [ip, #12] @ movhi
  tst r2, #3840
  ldrneh  r6, [lr, #10]
  strneh  r6, [ip, #10] @ movhi
  tst r2, #61440
  ldrneh  r6, [lr, #8]
  strneh  r6, [ip, #8]  @ movhi
  tst r2, #983040
  ldrneh  r6, [lr, #6]
  strneh  r6, [ip, #6]  @ movhi
  tst r2, #15728640
  ldrneh  r6, [lr, #4]
  strneh  r6, [ip, #4]  @ movhi
  tst r2, #251658240
  ldrneh  r6, [lr, #2]
  strneh  r6, [ip, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrneh  r2, [lr, #0]
  strneh  r2, [ip, #0]  @ movhi
.L19965:
  add r5, r5, #1
  cmp r5, r3
  sub r4, r4, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L19964
  ldr r4, [sp, #56]
  rsb r2, r3, r3, asl #27
  mov r3, r3, asl #4
  add r4, r4, r3
  add r1, r1, r3
  add r0, r0, r2, asl #5
  str r4, [sp, #56]
.L19962:
  ands  ip, r7, #7
  beq .L19663
  ldr r0, [r0, #0]
  mov r2, #0
.L19984:
  movs  r5, r0, lsr #28
  ldrne r6, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  r6, [r3, r6]
  add r2, r2, #1
  strneh  r6, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, asl #4
  bne .L19984
  b .L19663
.L19745:
  ldr r4, [sp, #24]
  cmp r9, #0
  add r3, r9, #7
  mov r1, r4, asl #22
  movge r3, r9
  mov r2, ip, lsr #3
  mov r4, r3, asr #3
  mov r2, r2, asl #1
  mov r1, r1, lsr #22
  mla r0, r2, r4, r1
  and r3, ip, #7
  add r3, r3, r0, asl #2
  ldr r5, [sp, #20]
  mov r0, r3, asl #3
  ldr r3, .L20498+28
  cmp r8, r5
  add r2, r0, r3
  blt .L20489
  ldr r5, [sp, #16]
  add r3, r8, r9
  cmp r5, r3
  bhi .L20164
  rsb r9, r8, r5
  cmp r9, #0
  ble .L19663
  ldr r6, [sp, #12]
  movs  sl, r9, lsr #3
  add r1, r6, r8, asl #1
  beq .L20167
  ldr r3, .L20498+36
  ldr r4, [sp, #56]
  add r0, r0, r3
  mov lr, r1
  mov r5, r2
  mov r7, #0
.L20169:
  ldr ip, [r5, #0]
  cmp ip, #0
  beq .L20170
  tst ip, #255
  ldrneh  r3, [r4, #0]
  strneh  r3, [lr, #0]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r6, [r4, #2]
  mov r3, ip, lsr #16
  strneh  r6, [lr, #2]  @ movhi
  tst r3, #255
  ldrneh  r3, [r4, #4]
  strneh  r3, [lr, #4]  @ movhi
  movs  ip, ip, lsr #24
  ldrneh  r6, [r4, #6]
  strneh  r6, [lr, #6]  @ movhi
.L20170:
  ldr ip, [r0, #-60]
  cmp ip, #0
  beq .L20179
  tst ip, #255
  ldrneh  r3, [r4, #8]
  strneh  r3, [lr, #8]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r6, [r4, #10]
  mov r3, ip, lsr #16
  strneh  r6, [lr, #10] @ movhi
  tst r3, #255
  ldrneh  r3, [r4, #12]
  strneh  r3, [lr, #12] @ movhi
  movs  ip, ip, lsr #24
  ldrneh  r6, [r4, #14]
  strneh  r6, [lr, #14] @ movhi
.L20179:
  add r7, r7, #1
  cmp r7, sl
  add r5, r5, #64
  add lr, lr, #16
  add r4, r4, #16
  add r0, r0, #64
  bne .L20169
  ldr ip, [sp, #56]
  mov r3, sl, asl #4
  add ip, ip, r3
  add r1, r1, r3
  add r2, r2, sl, asl #6
  str ip, [sp, #56]
.L20167:
  ands  ip, r9, #7
  beq .L19663
  cmp ip, #3
  ldrls r3, [r2, #0]
  bls .L20202
  ldr r0, [r2, #0]
  cmp r0, #0
  beq .L20192
  tst r0, #255
  ldrne lr, [sp, #56]
  mov r3, r0, lsr #8
  ldrneh  lr, [lr, #0]
  strneh  lr, [r1, #0]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #2]
  strneh  r3, [r1, #2]  @ movhi
  mov r3, r0, lsr #16
  tst r3, #255
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  movs  r0, r0, lsr #24
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #6]
  strneh  r5, [r1, #6]  @ movhi
.L20192:
  subs  ip, ip, #4
  ldr r3, [r2, #4]
  beq .L19663
  ldr r6, [sp, #56]
  add r1, r1, #8
  add r6, r6, #8
  str r6, [sp, #56]
.L20202:
  mov r2, #0
.L20203:
  tst r3, #255
  ldrne lr, [sp, #56]
  mov r0, r2, asl #1
  ldrneh  lr, [r0, lr]
  add r2, r2, #1
  strneh  lr, [r0, r1]  @ movhi
  cmp ip, r2
  mov r3, r3, lsr #8
  bhi .L20203
  b .L19663
.L20499:
  .align  2
.L20498:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word tile_mode_renderers
  .word oam_ram
  .word obj_width_table
  .word obj_height_table
  .word vram+65536
  .word vram+65472
  .word vram+65600
.L20489:
  rsb r0, r8, r5
  rsb lr, r0, r9
  cmp lr, #0
  ble .L19663
  ldr r6, [sp, #16]
  add r3, r8, r9
  cmp r6, r3
  bhi .L20011
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  add r8, r2, r3, asl #6
  bne .L20013
  ldr r7, [sp, #120]
  ldr r5, [sp, #100]
.L20015:
  movs  r4, r7, lsr #3
  beq .L20073
  ldr r0, [sp, #56]
  mov r1, r5
  mov ip, r8
  mov lr, #0
.L20075:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L20076
  tst r2, #255
  ldrneh  r3, [r0, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r6, [r0, #2]
  mov r3, r2, lsr #16
  strneh  r6, [r1, #2]  @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #4]
  strneh  r3, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r6, [r0, #6]
  strneh  r6, [r1, #6]  @ movhi
.L20076:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L20085
  tst r2, #255
  ldrneh  r3, [r0, #8]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r6, [r0, #10]
  mov r3, r2, lsr #16
  strneh  r6, [r1, #10] @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #12]
  strneh  r3, [r1, #12] @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r6, [r0, #14]
  strneh  r6, [r1, #14] @ movhi
.L20085:
  add lr, lr, #1
  cmp lr, r4
  add ip, ip, #64
  add r1, r1, #16
  add r0, r0, #16
  bne .L20075
  ldr ip, [sp, #56]
  mov r3, r4, asl #4
  add ip, ip, r3
  add r5, r5, r3
  add r8, r8, r4, asl #6
  str ip, [sp, #56]
.L20073:
  ands  r0, r7, #7
  beq .L19663
  cmp r0, #3
  ldrls r3, [r8, #0]
  bls .L20108
  ldr r2, [r8, #0]
  cmp r2, #0
  beq .L20098
  tst r2, #255
  ldrne lr, [sp, #56]
  mov r3, r2, lsr #8
  ldrneh  lr, [lr, #0]
  strneh  lr, [r5, #0]  @ movhi
  tst r3, #255
  ldrne r1, [sp, #56]
  mov r3, r2, lsr #16
  ldrneh  r1, [r1, #2]
  strneh  r1, [r5, #2]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r5, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #6]
  strneh  r4, [r5, #6]  @ movhi
.L20098:
  subs  r0, r0, #4
  ldr r3, [r8, #4]
  beq .L19663
  ldr r6, [sp, #56]
  add r5, r5, #8
  add r6, r6, #8
  str r6, [sp, #56]
.L20108:
  mov r2, #0
.L20109:
  tst r3, #255
  ldrne ip, [sp, #56]
  mov r1, r2, asl #1
  ldrneh  ip, [r1, ip]
  add r2, r2, #1
  strneh  ip, [r1, r5]  @ movhi
  cmp r0, r2
  mov r3, r3, lsr #8
  bhi .L20109
  b .L19663
.L20488:
  ldr r1, [sp, #20]
  rsb ip, r8, r1
  rsb r1, ip, r9
  cmp r1, #0
  ble .L19663
  ldr r2, [sp, #16]
  add r3, r8, r9
  cmp r2, r3
  bhi .L19881
  mov r3, ip, lsr #3
  ands  r4, ip, #7
  sub r0, r0, r3, asl #5
  bne .L19883
  ldr r7, [sp, #120]
  ldr r1, [sp, #100]
.L19885:
  movs  r3, r7, lsr #3
  beq .L19902
  ldr lr, [sp, #56]
  mov ip, r1
  mov r4, r0
  mov r5, #0
.L19904:
  ldr r2, [r4, #0]
  cmp r2, #0
  beq .L19905
  tst r2, #15
  ldrneh  r6, [lr, #14]
  strneh  r6, [ip, #14] @ movhi
  tst r2, #240
  ldrneh  r6, [lr, #12]
  strneh  r6, [ip, #12] @ movhi
  tst r2, #3840
  ldrneh  r6, [lr, #10]
  strneh  r6, [ip, #10] @ movhi
  tst r2, #61440
  ldrneh  r6, [lr, #8]
  strneh  r6, [ip, #8]  @ movhi
  tst r2, #983040
  ldrneh  r6, [lr, #6]
  strneh  r6, [ip, #6]  @ movhi
  tst r2, #15728640
  ldrneh  r6, [lr, #4]
  strneh  r6, [ip, #4]  @ movhi
  tst r2, #251658240
  ldrneh  r6, [lr, #2]
  strneh  r6, [ip, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrneh  r2, [lr, #0]
  strneh  r2, [ip, #0]  @ movhi
.L19905:
  add r5, r5, #1
  cmp r5, r3
  sub r4, r4, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L19904
  ldr r4, [sp, #56]
  rsb r2, r3, r3, asl #27
  mov r3, r3, asl #4
  add r4, r4, r3
  add r1, r1, r3
  add r0, r0, r2, asl #5
  str r4, [sp, #56]
.L19902:
  ands  ip, r7, #7
  beq .L19663
  ldr r0, [r0, #0]
  mov r2, #0
.L19924:
  movs  r5, r0, lsr #28
  ldrne r6, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  r6, [r3, r6]
  add r2, r2, #1
  strneh  r6, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, asl #4
  bne .L19924
  b .L19663
.L20487:
  rsb ip, r8, r2
  rsb lr, ip, r9
  cmp lr, #0
  ble .L19663
  ldr r4, [sp, #16]
  add r3, r8, r9
  cmp r4, r3
  bhi .L19751
  mov r3, ip, lsr #3
  mov r1, r3, asl #5
  ands  r3, ip, #7
  add r4, r0, r1
  bne .L19753
  ldr r7, [sp, #120]
  ldr r5, [sp, #100]
.L19755:
  movs  lr, r7, lsr #3
  beq .L19772
  ldr r1, [sp, #56]
  mov r2, r5
  mov r0, r4
  mov ip, #0
.L19774:
  ldr r3, [r0, #0]
  cmp r3, #0
  beq .L19775
  tst r3, #15
  ldrneh  r6, [r1, #0]
  strneh  r6, [r2, #0]  @ movhi
  tst r3, #240
  ldrneh  r6, [r1, #2]
  strneh  r6, [r2, #2]  @ movhi
  tst r3, #3840
  ldrneh  r6, [r1, #4]
  strneh  r6, [r2, #4]  @ movhi
  tst r3, #61440
  ldrneh  r6, [r1, #6]
  strneh  r6, [r2, #6]  @ movhi
  tst r3, #983040
  ldrneh  r6, [r1, #8]
  strneh  r6, [r2, #8]  @ movhi
  tst r3, #15728640
  ldrneh  r6, [r1, #10]
  strneh  r6, [r2, #10] @ movhi
  tst r3, #251658240
  ldrneh  r6, [r1, #12]
  strneh  r6, [r2, #12] @ movhi
  movs  r3, r3, lsr #28
  ldrneh  r3, [r1, #14]
  strneh  r3, [r2, #14] @ movhi
.L19775:
  add ip, ip, #1
  cmp ip, lr
  add r0, r0, #32
  add r2, r2, #16
  add r1, r1, #16
  bne .L19774
  ldr r6, [sp, #56]
  mov r3, lr, asl #4
  add r6, r6, r3
  add r5, r5, r3
  add r4, r4, lr, asl #5
  str r6, [sp, #56]
.L19772:
  ands  r0, r7, #7
  beq .L19663
  ldr r3, [r4, #0]
  mov r1, #0
.L19794:
  tst r3, #15
  ldrne ip, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  ip, [r2, ip]
  add r1, r1, #1
  strneh  ip, [r2, r5]  @ movhi
  cmp r1, r0
  mov r3, r3, lsr #4
  bne .L19794
  b .L19663
.L19720:
  cmp ip, r9
  bcs .L19663
.L20464:
  mov r3, ip, asr #1
  and r4, r3, #3
  mov r3, ip, asr #3
  mov r3, r3, asl #5
  mov r2, ip, asr #1
  tst ip, #1
  and lr, r2, #3
  add ip, r3, r7
  add r2, r3, r7
  ldreqb  r3, [r2, lr]  @ zero_extendqisi2
  ldrneb  r3, [ip, r4]  @ zero_extendqisi2
  andeq r2, r3, #15
  movne r2, r3, lsr #4
  cmp r2, #0
  ldrne r4, [sp, #56]
  ldr r5, [sp, #56]
  ldrneh  r4, [r4, #0]
  ldr r3, [sp, #84]
  add r1, r1, #1
  strneh  r4, [r8, #0]  @ movhi
  add r0, r0, r3
  add r5, r5, #2
  cmp r6, r1
  mov ip, r0, asr #8
  add r8, r8, #2
  str r5, [sp, #56]
  bgt .L19720
  b .L19663
.L19688:
  cmp ip, r9
  bcs .L19663
.L20462:
  ldr r2, [sp, #76]
  mov r3, ip, asr #3
  add r3, r4, r3, asl #6
  and r1, ip, #7
  add r0, r0, r2
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  ldr r5, [sp, #56]
  cmp r2, #0
  ldrne r3, [sp, #56]
  add lr, lr, #1
  ldrneh  r3, [r3, #0]
  add r5, r5, #2
  strneh  r3, [r8, #0]  @ movhi
  cmp fp, lr
  mov ip, r0, asr #8
  add r8, r8, #2
  str r5, [sp, #56]
  bgt .L19688
  b .L19663
.L20486:
  rsb r0, r8, r2
  rsb lr, r0, r9
  cmp lr, #0
  ble .L19663
  ldr r4, [sp, #16]
  add r3, r8, r9
  cmp r4, r3
  bhi .L20231
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub r8, r7, r3, asl #6
  bne .L20233
  ldr r7, [sp, #120]
  ldr r5, [sp, #100]
.L20235:
  movs  r4, r7, lsr #3
  beq .L20293
  ldr r0, [sp, #56]
  mov r1, r5
  mov ip, r8
  mov lr, #0
.L20295:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L20296
  tst r2, #255
  ldrneh  r3, [r0, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r6, [r0, #4]
  mov r3, r2, lsr #16
  strneh  r6, [r1, #4]  @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #2]
  strneh  r3, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r6, [r0, #0]
  strneh  r6, [r1, #0]  @ movhi
.L20296:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L20305
  tst r2, #255
  ldrneh  r3, [r0, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r6, [r0, #12]
  mov r3, r2, lsr #16
  strneh  r6, [r1, #12] @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #10]
  strneh  r3, [r1, #10] @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r6, [r0, #8]
  strneh  r6, [r1, #8]  @ movhi
.L20305:
  add lr, lr, #1
  cmp lr, r4
  sub ip, ip, #64
  add r1, r1, #16
  add r0, r0, #16
  bne .L20295
  ldr ip, [sp, #56]
  mov r3, r4, asl #4
  rsb r2, r4, r4, asl #26
  add ip, ip, r3
  add r5, r5, r3
  add r8, r8, r2, asl #6
  str ip, [sp, #56]
.L20293:
  ands  ip, r7, #7
  beq .L19663
  cmp ip, #3
  ldrls r2, [r8, #4]
  bls .L20328
  ldr r2, [r8, #4]
  cmp r2, #0
  beq .L20318
  tst r2, #255
  ldrne lr, [sp, #56]
  mov r3, r2, lsr #8
  ldrneh  lr, [lr, #6]
  strneh  lr, [r5, #6]  @ movhi
  tst r3, #255
  ldrne r0, [sp, #56]
  mov r3, r2, lsr #16
  ldrneh  r0, [r0, #4]
  strneh  r0, [r5, #4]  @ movhi
  tst r3, #255
  ldrne r1, [sp, #56]
  ldrneh  r1, [r1, #2]
  strneh  r1, [r5, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r2, [sp, #56]
  ldrneh  r2, [r2, #0]
  strneh  r2, [r5, #0]  @ movhi
.L20318:
  subs  ip, ip, #4
  ldr r2, [r8, #0]
  beq .L19663
  ldr r3, [sp, #56]
  add r5, r5, #8
  add r3, r3, #8
  str r3, [sp, #56]
.L20328:
  mov r1, #0
.L20329:
  movs  r4, r2, lsr #24
  ldrne r6, [sp, #56]
  mov r0, r1, asl #1
  ldrneh  r6, [r0, r6]
  add r1, r1, #1
  strneh  r6, [r0, r5]  @ movhi
  cmp ip, r1
  mov r2, r2, asl #8
  bhi .L20329
  b .L19663
.L19829:
  cmp lr, #0
  beq .L19663
  ldr r6, [sp, #12]
  mov r3, #0
  add r1, r6, r8, asl #1
  b .L19859
.L20490:
  ldr ip, [sp, #56]
  add r0, r0, #32
  add ip, ip, #16
  add r1, r1, #16
  str ip, [sp, #56]
.L19859:
  ldr ip, [r0, #0]
  cmp ip, #0
  beq .L19860
  tst ip, #15
  ldrne r2, [sp, #56]
  ldrneh  r2, [r2, #0]
  strneh  r2, [r1, #0]  @ movhi
  tst ip, #240
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst ip, #3840
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  tst ip, #61440
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
  tst ip, #983040
  ldrne r2, [sp, #56]
  ldrneh  r2, [r2, #8]
  strneh  r2, [r1, #8]  @ movhi
  tst ip, #15728640
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #10]
  strneh  r4, [r1, #10] @ movhi
  tst ip, #251658240
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #12]
  strneh  r5, [r1, #12] @ movhi
  movs  ip, ip, lsr #28
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #14]
  strneh  r6, [r1, #14] @ movhi
.L19860:
  add r3, r3, #1
  cmp lr, r3
  bne .L20490
  b .L19663
.L19959:
  cmp lr, #0
  beq .L19663
  ldr ip, [sp, #12]
  mov r3, #0
  add r1, ip, r8, asl #1
  b .L19989
.L20491:
  ldr r2, [sp, #56]
  sub r0, r0, #32
  add r2, r2, #16
  add r1, r1, #16
  str r2, [sp, #56]
.L19989:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L19990
  tst r2, #15
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #14]
  strneh  r4, [r1, #14] @ movhi
  tst r2, #240
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #12]
  strneh  r5, [r1, #12] @ movhi
  tst r2, #3840
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #10]
  strneh  r6, [r1, #10] @ movhi
  tst r2, #61440
  ldrne ip, [sp, #56]
  ldrneh  ip, [ip, #8]
  strneh  ip, [r1, #8]  @ movhi
  tst r2, #983040
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #6]
  strneh  r4, [r1, #6]  @ movhi
  tst r2, #15728640
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  tst r2, #251658240
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #2]
  strneh  r6, [r1, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrne ip, [sp, #56]
  ldrneh  ip, [ip, #0]
  strneh  ip, [r1, #0]  @ movhi
.L19990:
  add r3, r3, #1
  cmp lr, r3
  bne .L20491
  b .L19663
.L20384:
  cmp lr, #0
  beq .L19663
  ldr r2, [sp, #12]
  ldr r3, .L20498+32
  add r1, r2, r8, asl #1
  add r0, r0, r3
  mov r2, #0
  b .L20428
.L20492:
  ldr ip, [sp, #56]
  sub r7, r7, #64
  add ip, ip, #16
  add r1, r1, #16
  str ip, [sp, #56]
.L20428:
  ldr ip, [r0, #68]
  cmp ip, #0
  beq .L20429
  tst ip, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r3, ip, lsr #16
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r1, #2]  @ movhi
  movs  ip, ip, lsr #24
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r1, #0]  @ movhi
.L20429:
  ldr ip, [r7, #0]
  cmp ip, #0
  beq .L20438
  tst ip, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r3, ip, lsr #16
  ldrneh  r4, [r4, #12]
  strneh  r4, [r1, #12] @ movhi
  tst r3, #255
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r1, #10] @ movhi
  movs  ip, ip, lsr #24
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #8]
  strneh  r6, [r1, #8]  @ movhi
.L20438:
  add r2, r2, #1
  cmp lr, r2
  sub r0, r0, #64
  bne .L20492
  b .L19663
.L20164:
  cmp r4, #0
  beq .L19663
  ldr r3, [sp, #12]
  mov lr, #0
  add r1, r3, r8, asl #1
  ldr r3, .L20498+36
  add r0, r0, r3
  b .L20208
.L20493:
  ldr ip, [sp, #56]
  add r2, r2, #64
  add ip, ip, #16
  add r1, r1, #16
  str ip, [sp, #56]
.L20208:
  ldr ip, [r2, #0]
  cmp ip, #0
  beq .L20209
  tst ip, #255
  ldrne r5, [sp, #56]
  mov r3, ip, lsr #8
  ldrneh  r5, [r5, #0]
  strneh  r5, [r1, #0]  @ movhi
  tst r3, #255
  ldrne r6, [sp, #56]
  mov r3, ip, lsr #16
  ldrneh  r6, [r6, #2]
  strneh  r6, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r1, #4]  @ movhi
  movs  ip, ip, lsr #24
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #6]
  strneh  r5, [r1, #6]  @ movhi
.L20209:
  ldr ip, [r0, #-60]
  cmp ip, #0
  beq .L20218
  tst ip, #255
  ldrne r6, [sp, #56]
  mov r3, ip, lsr #8
  ldrneh  r6, [r6, #8]
  strneh  r6, [r1, #8]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #10]
  strneh  r3, [r1, #10] @ movhi
  mov r3, ip, lsr #16
  tst r3, #255
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #12]
  strneh  r5, [r1, #12] @ movhi
  movs  ip, ip, lsr #24
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #14]
  strneh  r6, [r1, #14] @ movhi
.L20218:
  add lr, lr, #1
  cmp r4, lr
  add r0, r0, #64
  bne .L20493
  b .L19663
.L20011:
  ands  r1, r0, #7
  mov r3, r0, lsr #3
  add ip, r2, r3, asl #6
  ldreq r1, [sp, #100]
  beq .L20115
  cmp r1, #3
  rsb r0, r1, #8
  bls .L20116
  cmp r0, #0
  ldr r2, [ip, #4]
  ldreq r1, [sp, #100]
  beq .L20120
  mov r3, r1, asl #3
  sub r3, r3, #32
  mov r3, r2, lsr r3
  mov r1, #0
.L20121:
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r0, r1
  mov r3, r3, lsr #8
  bne .L20121
  ldr r6, [sp, #56]
  mov r3, r0, asl #1
  ldr r0, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #56]
  add r1, r0, r3
.L20120:
  add ip, ip, #64
.L20115:
  movs  lr, lr, lsr #3
  beq .L19663
  mov r0, #0
  b .L20144
.L20494:
  ldr r2, [sp, #56]
  add ip, ip, #64
  add r2, r2, #16
  add r1, r1, #16
  str r2, [sp, #56]
.L20144:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L20145
  tst r2, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
.L20145:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L20154
  tst r2, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #8]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #10]
  strneh  r4, [r1, #10] @ movhi
  tst r3, #255
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #12]
  strneh  r5, [r1, #12] @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #14]
  strneh  r6, [r1, #14] @ movhi
.L20154:
  add r0, r0, #1
  cmp r0, lr
  bne .L20494
  b .L19663
.L19881:
  mov r3, ip, lsr #3
  ands  r2, ip, #7
  sub r0, r0, r3, asl #5
  ldreq r3, [sp, #100]
  beq .L19930
  rsbs  r4, r2, #8
  ldr ip, [r0, #0]
  ldreq r3, [sp, #100]
  beq .L19933
  mov r3, r2, asl #2
  mov r3, ip, asl r3
  mov lr, #0
.L19934:
  movs  ip, r3, lsr #28
  ldrne r2, [sp, #56]
  mov ip, lr, asl #1
  ldrneh  r5, [ip, r2]
  ldrne r2, [sp, #100]
  add lr, lr, #1
  strneh  r5, [ip, r2]  @ movhi
  cmp lr, r4
  mov r3, r3, asl #4
  bne .L19934
  ldr r6, [sp, #56]
  mov r3, r4, asl #1
  ldr ip, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #56]
  add r3, ip, r3
.L19933:
  sub r0, r0, #32
.L19930:
  movs  r1, r1, lsr #3
  beq .L19663
  mov r2, #0
  b .L19940
.L20495:
  ldr ip, [sp, #56]
  sub r0, r0, #32
  add ip, ip, #16
  add r3, r3, #16
  str ip, [sp, #56]
.L19940:
  ldr ip, [r0, #0]
  cmp ip, #0
  beq .L19941
  tst ip, #15
  ldrne lr, [sp, #56]
  ldrneh  lr, [lr, #14]
  strneh  lr, [r3, #14] @ movhi
  tst ip, #240
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #12]
  strneh  r4, [r3, #12] @ movhi
  tst ip, #3840
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r3, #10] @ movhi
  tst ip, #61440
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #8]
  strneh  r6, [r3, #8]  @ movhi
  tst ip, #983040
  ldrne lr, [sp, #56]
  ldrneh  lr, [lr, #6]
  strneh  lr, [r3, #6]  @ movhi
  tst ip, #15728640
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #4]
  strneh  r4, [r3, #4]  @ movhi
  tst ip, #251658240
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r3, #2]  @ movhi
  movs  ip, ip, lsr #28
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r3, #0]  @ movhi
.L19941:
  add r2, r2, #1
  cmp r2, r1
  bne .L20495
  b .L19663
.L19751:
  mov r3, ip, lsr #3
  mov r1, r3, asl #5
  ands  r3, ip, #7
  ldreq r3, [sp, #100]
  add ip, r0, r1
  beq .L19800
  rsbs  r4, r3, #8
  ldr r0, [r0, r1]
  ldreq r3, [sp, #100]
  beq .L19803
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  mov r2, #0
.L19804:
  tst r0, #15
  ldrne r1, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  r5, [r3, r1]
  ldrne r1, [sp, #100]
  add r2, r2, #1
  strneh  r5, [r3, r1]  @ movhi
  cmp r4, r2
  mov r0, r0, lsr #4
  bne .L19804
  ldr r6, [sp, #56]
  mov r3, r4, asl #1
  ldr r0, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #56]
  add r3, r0, r3
.L19803:
  add ip, ip, #32
.L19800:
  movs  r0, lr, lsr #3
  beq .L19663
  mov r1, #0
  b .L19810
.L20496:
  ldr r2, [sp, #56]
  add ip, ip, #32
  add r2, r2, #16
  add r3, r3, #16
  str r2, [sp, #56]
.L19810:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L19811
  tst r2, #15
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #0]
  strneh  r4, [r3, #0]  @ movhi
  tst r2, #240
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r3, #2]  @ movhi
  tst r2, #3840
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #4]
  strneh  r6, [r3, #4]  @ movhi
  tst r2, #61440
  ldrne lr, [sp, #56]
  ldrneh  lr, [lr, #6]
  strneh  lr, [r3, #6]  @ movhi
  tst r2, #983040
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #8]
  strneh  r4, [r3, #8]  @ movhi
  tst r2, #15728640
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r3, #10] @ movhi
  tst r2, #251658240
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #12]
  strneh  r6, [r3, #12] @ movhi
  movs  r2, r2, lsr #28
  ldrne lr, [sp, #56]
  ldrneh  lr, [lr, #14]
  strneh  lr, [r3, #14] @ movhi
.L19811:
  add r1, r1, #1
  cmp r1, r0
  bne .L20496
  b .L19663
.L20231:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  sub ip, r7, r3, asl #6
  ldreq r1, [sp, #100]
  beq .L20335
  cmp r2, #3
  rsb r0, r2, #8
  bls .L20336
  cmp r0, #0
  ldr r1, [ip, #0]
  ldreq r1, [sp, #100]
  beq .L20340
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r3, r1, asl r3
  mov r1, #0
.L20341:
  movs  r2, r3, lsr #24
  ldrne r4, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r1, r0
  mov r3, r3, asl #8
  bne .L20341
  ldr r6, [sp, #56]
  mov r3, r0, asl #1
  ldr r0, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #56]
  add r1, r0, r3
.L20340:
  sub ip, ip, #64
.L20335:
  movs  lr, lr, lsr #3
  beq .L19663
  mov r0, #0
  b .L20364
.L20497:
  ldr r2, [sp, #56]
  sub ip, ip, #64
  add r2, r2, #16
  add r1, r1, #16
  str r2, [sp, #56]
.L20364:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L20365
  tst r2, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r1, #0]  @ movhi
.L20365:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L20374
  tst r2, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #12]
  strneh  r4, [r1, #12] @ movhi
  tst r3, #255
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r1, #10] @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #8]
  strneh  r6, [r1, #8]  @ movhi
.L20374:
  add r0, r0, #1
  cmp r0, lr
  bne .L20497
  b .L19663
.L19753:
  ldr r5, [sp, #120]
  rsb ip, r3, #8
  cmp r5, ip
  bge .L19756
  cmp r5, #0
  ble .L19663
  ldr r2, [r0, r1]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  mov r2, #0
.L19760:
  tst r0, #15
  ldrne r6, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  ip, [r3, r6]
  ldr lr, [sp, #120]
  ldrne r6, [sp, #100]
  add r2, r2, #1
  strneh  ip, [r3, r6]  @ movhi
  cmp lr, r2
  mov r0, r0, lsr #4
  bne .L19760
  b .L19663
.L20233:
  ldr r5, [sp, #120]
  rsb lr, ip, #8
  cmp r5, lr
  bge .L20236
  cmp r5, #0
  ble .L19663
  cmp ip, #3
  bls .L20239
  ldr r2, [r8, #0]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L20242:
  movs  r6, r2, lsr #24
  ldrne ip, [sp, #56]
  mov r3, r1, asl #1
  ldrneh  lr, [r3, ip]
  ldr r0, [sp, #120]
  ldrne ip, [sp, #100]
  add r1, r1, #1
  strneh  lr, [r3, ip]  @ movhi
  cmp r0, r1
  mov r2, r2, asl #8
  bne .L20242
  b .L19663
.L20013:
  ldr r0, [sp, #120]
  rsb lr, ip, #8
  cmp r0, lr
  bge .L20016
  cmp r0, #0
  ble .L19663
  cmp ip, #3
  bls .L20019
  ldr r2, [r8, #4]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L20022:
  tst r1, #255
  ldrne r4, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  r5, [r3, r4]
  ldr r6, [sp, #120]
  ldrne r4, [sp, #100]
  add r2, r2, #1
  strneh  r5, [r3, r4]  @ movhi
  cmp r6, r2
  mov r1, r1, lsr #8
  bne .L20022
  b .L19663
.L19883:
  ldr r3, [sp, #120]
  rsb lr, r4, #8
  cmp r3, lr
  bge .L19886
  cmp r3, #0
  ble .L19663
  ldr r2, [r0, #0]
  mov r3, r4, asl #2
  mov r0, r2, asl r3
  mov r2, #0
.L19890:
  movs  r4, r0, lsr #28
  ldrne r5, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  r6, [r3, r5]
  ldr ip, [sp, #120]
  ldrne r5, [sp, #100]
  add r2, r2, #1
  strneh  r6, [r3, r5]  @ movhi
  cmp ip, r2
  mov r0, r0, asl #4
  bne .L19890
  b .L19663
.L20016:
  cmp ip, #3
  bls .L20046
  cmp lr, #0
  ldr r2, [r8, #4]
  ldreq r5, [sp, #100]
  beq .L20050
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L20051:
  tst r1, #255
  ldrne r0, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r0]
  ldrne r0, [sp, #100]
  add r2, r2, #1
  strneh  r4, [r3, r0]  @ movhi
  cmp lr, r2
  mov r1, r1, lsr #8
  bne .L20051
  ldr r5, [sp, #56]
  mov r3, lr, asl #1
  ldr r6, [sp, #100]
  add r5, r5, r3
  str r5, [sp, #56]
  add r5, r3, r6
.L20050:
  ldr ip, [sp, #120]
  add r8, r8, #64
  rsb r7, lr, ip
  b .L20015
.L20116:
  subs  r4, r0, #4
  ldr r2, [ip, #0]
  ldreq r1, [sp, #100]
  beq .L20128
  mov r3, r1, asl #3
  mov r3, r2, lsr r3
  mov r1, #0
.L20129:
  tst r3, #255
  ldrne r5, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  r6, [r2, r5]
  ldrne r5, [sp, #100]
  add r1, r1, #1
  strneh  r6, [r2, r5]  @ movhi
  cmp r1, r4
  mov r3, r3, lsr #8
  bne .L20129
  mov r3, r0, asl #1
  ldr r0, [sp, #56]
  ldr r1, [sp, #100]
  add r2, r0, r3
  sub r2, r2, #8
  add r3, r1, r3
  str r2, [sp, #56]
  sub r1, r3, #8
.L20128:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L20134
  tst r2, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
.L20134:
  ldr r0, [sp, #56]
  add r1, r1, #8
  add r0, r0, #8
  add ip, ip, #64
  str r0, [sp, #56]
  b .L20115
.L19756:
  cmp ip, #0
  ldr r2, [r4, #0]
  ldreq r5, [sp, #100]
  beq .L19766
  mov r3, r3, asl #2
  mov r3, r2, lsr r3
  mov r1, #0
.L19767:
  tst r3, #15
  ldrne r0, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r0]
  ldrne r0, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r2, r0]  @ movhi
  cmp ip, r1
  mov r3, r3, lsr #4
  bne .L19767
  ldr r6, [sp, #56]
  mov r3, ip, asl #1
  ldr lr, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #56]
  add r5, r3, lr
.L19766:
  ldr r0, [sp, #120]
  add r4, r4, #32
  rsb r7, ip, r0
  b .L19755
.L19886:
  cmp lr, #0
  ldr r2, [r0, #0]
  ldreq r1, [sp, #100]
  beq .L19896
  mov r3, r4, asl #2
  mov r3, r2, asl r3
  mov ip, #0
.L19897:
  movs  r1, r3, lsr #28
  ldrne r4, [sp, #56]
  mov r2, ip, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add ip, ip, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp lr, ip
  mov r3, r3, asl #4
  bne .L19897
  ldr r6, [sp, #56]
  mov r3, lr, asl #1
  ldr ip, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #56]
  add r1, r3, ip
.L19896:
  ldr r2, [sp, #120]
  sub r0, r0, #32
  rsb r7, lr, r2
  b .L19885
.L20336:
  subs  r4, r0, #4
  ldr r1, [ip, #4]
  ldreq r1, [sp, #100]
  beq .L20348
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r3, r1, asl r3
  mov r1, #0
.L20349:
  movs  r2, r3, lsr #24
  ldrne r5, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  r6, [r2, r5]
  ldrne r5, [sp, #100]
  add r1, r1, #1
  strneh  r6, [r2, r5]  @ movhi
  cmp r1, r4
  mov r3, r3, asl #8
  bne .L20349
  mov r3, r0, asl #1
  ldr r0, [sp, #56]
  ldr r1, [sp, #100]
  add r2, r0, r3
  sub r2, r2, #8
  add r3, r1, r3
  str r2, [sp, #56]
  sub r1, r3, #8
.L20348:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L20354
  tst r2, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #56]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r1, #0]  @ movhi
.L20354:
  ldr r0, [sp, #56]
  add r1, r1, #8
  add r0, r0, #8
  sub ip, ip, #64
  str r0, [sp, #56]
  b .L20335
.L20236:
  cmp ip, #3
  bls .L20266
  cmp lr, #0
  ldr r2, [r8, #0]
  ldreq r5, [sp, #100]
  beq .L20270
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r3, r2, asl r3
  mov r1, #0
.L20271:
  movs  r2, r3, lsr #24
  ldrne r4, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp lr, r1
  mov r3, r3, asl #8
  bne .L20271
  ldr r6, [sp, #56]
  mov r3, lr, asl #1
  ldr ip, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #56]
  add r5, ip, r3
.L20270:
  ldr ip, [sp, #120]
  sub r8, r8, #64
  rsb r7, lr, ip
  b .L20235
.L20482:
  mov r7, #0
  b .L19733
.L20478:
  mov r7, #0
  b .L19698
.L20046:
  subs  r0, lr, #4
  ldr r2, [r8, #0]
  ldreq r1, [sp, #100]
  beq .L20058
  mov r3, ip, asl #3
  mov r1, r2, lsr r3
  mov r2, #0
.L20059:
  tst r1, #255
  ldrne ip, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, ip]
  ldrne ip, [sp, #100]
  add r2, r2, #1
  strneh  r4, [r3, ip]  @ movhi
  cmp r2, r0
  mov r1, r1, lsr #8
  bne .L20059
  ldr r5, [sp, #56]
  mov r3, lr, asl #1
  ldr r6, [sp, #100]
  add r2, r5, r3
  sub r2, r2, #8
  add r3, r6, r3
  str r2, [sp, #56]
  sub r1, r3, #8
.L20058:
  ldr r2, [r8, #4]
  cmp r2, #0
  beq .L20064
  tst r2, #255
  ldrne ip, [sp, #56]
  mov r3, r2, lsr #8
  ldrneh  ip, [ip, #0]
  strneh  ip, [r1, #0]  @ movhi
  tst r3, #255
  ldrne r0, [sp, #56]
  mov r3, r2, lsr #16
  ldrneh  r0, [r0, #2]
  strneh  r0, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #6]
  strneh  r4, [r1, #6]  @ movhi
.L20064:
  ldr r6, [sp, #56]
  add r5, r1, #8
  add r6, r6, #8
  str r6, [sp, #56]
  b .L20050
.L20266:
  subs  r0, lr, #4
  ldr r2, [r8, #4]
  ldreq r1, [sp, #100]
  beq .L20278
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r3, r2, asl r3
  mov r1, #0
.L20279:
  movs  r2, r3, lsr #24
  ldrne r4, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r1, r0
  mov r3, r3, asl #8
  bne .L20279
  ldr r6, [sp, #56]
  mov r3, lr, asl #1
  ldr ip, [sp, #100]
  add r2, r6, r3
  sub r2, r2, #8
  add r3, ip, r3
  str r2, [sp, #56]
  sub r1, r3, #8
.L20278:
  ldr r2, [r8, #0]
  cmp r2, #0
  beq .L20284
  tst r2, #255
  ldrne r0, [sp, #56]
  mov r3, r2, lsr #8
  ldrneh  r0, [r0, #6]
  strneh  r0, [r1, #6]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #56]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  tst r3, #255
  ldrne r4, [sp, #56]
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r5, [sp, #56]
  ldrneh  r5, [r5, #0]
  strneh  r5, [r1, #0]  @ movhi
.L20284:
  ldr r6, [sp, #56]
  add r5, r1, #8
  add r6, r6, #8
  str r6, [sp, #56]
  b .L20270
.L20485:
  mov r1, fp
  b .L20464
.L20484:
  mov lr, r6
  b .L20462
.L20019:
  ldr lr, [sp, #120]
  ldr r3, [r8, #0]
  add r2, lr, ip
  mov r1, ip, asl #3
  cmp r2, #4
  mov r3, r3, lsr r1
  bhi .L20026
  cmp lr, #0
  movne r1, #0
  beq .L19663
.L20042:
  tst r3, #255
  ldrne r5, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  r6, [r2, r5]
  ldr ip, [sp, #120]
  ldrne r5, [sp, #100]
  add r1, r1, #1
  strneh  r6, [r2, r5]  @ movhi
  cmp ip, r1
  mov r3, r3, lsr #8
  bne .L20042
  b .L19663
.L20239:
  ldr r4, [sp, #120]
  mov r3, ip, asl #3
  ldr r1, [r8, #4]
  add r2, r4, ip
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L20246
  cmp r4, #0
  movne r2, #0
  beq .L19663
.L20262:
  movs  r6, r1, lsr #24
  ldrne ip, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  lr, [r3, ip]
  ldr r0, [sp, #120]
  ldrne ip, [sp, #100]
  add r2, r2, #1
  strneh  lr, [r3, ip]  @ movhi
  cmp r0, r2
  mov r1, r1, asl #8
  bne .L20262
  b .L19663
.L20026:
  rsbs  r0, ip, #4
  ldreq ip, [sp, #100]
  beq .L20031
  mov r1, #0
.L20032:
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r1, r0
  mov r3, r3, lsr #8
  bne .L20032
  ldr r6, [sp, #56]
  mov r3, r0, asl #1
  ldr lr, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #56]
  add ip, r3, lr
.L20031:
  ldr r1, [sp, #120]
  ldr r3, [r8, #4]
  subs  r0, r1, r0
  beq .L19663
  mov r1, #0
.L20038:
  tst r3, #255
  ldrne r4, [sp, #56]
  mov r2, r1, asl #1
  ldrneh  r4, [r2, r4]
  add r1, r1, #1
  strneh  r4, [r2, ip]  @ movhi
  cmp r1, r0
  mov r3, r3, lsr #8
  bne .L20038
  b .L19663
.L20246:
  rsbs  r0, ip, #4
  ldreq r3, [sp, #100]
  beq .L20251
  mov r2, #0
.L20252:
  movs  r5, r1, lsr #24
  ldrne r6, [sp, #56]
  mov r3, r2, asl #1
  ldrneh  ip, [r3, r6]
  ldrne r6, [sp, #100]
  add r2, r2, #1
  strneh  ip, [r3, r6]  @ movhi
  cmp r2, r0
  mov r1, r1, asl #8
  bne .L20252
  ldr lr, [sp, #56]
  mov r3, r0, asl #1
  ldr r1, [sp, #100]
  add lr, lr, r3
  str lr, [sp, #56]
  add r3, r3, r1
.L20251:
  ldr r2, [sp, #120]
  subs  ip, r2, r0
  ldr r2, [r8, #0]
  beq .L19663
  mov r0, #0
.L20258:
  movs  r4, r2, lsr #24
  ldrne r5, [sp, #56]
  mov r1, r0, asl #1
  ldrneh  r5, [r1, r5]
  add r0, r0, #1
  strneh  r5, [r1, r3]  @ movhi
  cmp r0, ip
  mov r2, r2, asl #8
  bne .L20258
  b .L19663
  .size render_scanline_obj_copy_tile_1D, .-render_scanline_obj_copy_tile_1D
  .align  2
  .global render_scanline_window_tile
  .type render_scanline_window_tile, %function
render_scanline_window_tile:
  @ args = 0, pretend = 0, frame = 20
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr lr, .L21076
  mov r2, r1, lsr #13
  ldrh  ip, [lr, #74]
  ldr r3, .L21076+4
  and ip, ip, #63
  sub sp, sp, #32
  mov r6, r1
  sub r2, r2, #1
  and r1, r1, #7
  str ip, [sp, #12]
  add r9, r3, r1, asl #7
  mov r7, r0
  ldrh  ip, [lr, #6]
  ldrh  sl, [lr, #80]
  cmp r2, #6
  ldrls pc, [pc, r2, asl #2]
  b .L20990
  .p2align 2
.L20509:
  .word .L20502
  .word .L20503
  .word .L20504
  .word .L20505
  .word .L20506
  .word .L20507
  .word .L20508
.L20503:
  ldrh  r3, [lr, #70]
  ldr r4, .L21076
  and r1, r3, #255
  mov r0, r3, lsr #8
  cmp r0, r1
  ldrh  r2, [lr, #72]
  bls .L20531
  cmp ip, r0
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  bne .L20539
.L20994:
  cmp r1, #227
  bhi .L20539
.L20535:
  mov r4, #240
  mov r5, r4
.L20547:
  mov r0, #0
  mov r1, r5
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20548:
  cmp r5, r4
  beq .L20528
  mov r0, r5
  mov r3, r8
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20528:
  cmp r4, #240
  beq .L20990
  ldr r3, [sp, #12]
  mov r0, r4
  mov r2, r7
.L21037:
  mov r1, #240
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20990:
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L20502:
  ldrh  r3, [lr, #68]
  ldr r4, .L21076
  and r2, r3, #255
  mov r1, r3, lsr #8
  cmp r1, r2
  ldrh  r0, [lr, #72]
  bls .L20510
  cmp ip, r1
  movls r3, #0
  movhi r3, #1
  cmp ip, r2
  orrls r3, r3, #1
  cmp r3, #0
  beq .L20992
.L20518:
  cmp r1, #227
  bhi .L20535
  ldrh  r3, [r4, #64]
  and r8, r0, #63
  and r4, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r5, r3
  movcs r5, #240
  cmp r4, #240
  bhi .L21059
.L20538:
  cmp r5, r4
  bls .L20542
  cmp r4, #0
  bne .L21060
.L20544:
  mov r0, r4
  ldr r3, [sp, #12]
  mov r2, r7
  mov r1, r5
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  cmp r5, #240
  movne r0, r5
  movne r2, r7
  movne r3, r8
  bne .L21037
  b .L20990
.L20508:
  ldrh  r3, [lr, #68]
  ldr r2, .L21076
  and r1, r3, #255
  mov r0, r3, lsr #8
  cmp r0, r1
  ldrh  r4, [lr, #72]
  bls .L20774
  cmp ip, r0
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L21053
.L20782:
  cmp r0, #227
  bls .L21061
.L20778:
  mov r8, #240
  mov fp, r8
.L20781:
  ldrh  r3, [lr, #70]
  ldr r0, .L21076
  and r1, r3, #255
  mov r2, r3, lsr #8
  cmp r2, r1
  bls .L20785
  cmp ip, r2
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L21054
.L20793:
  cmp r2, #227
  bls .L21062
.L20789:
  mov r5, #240
  mov r4, r5
.L20792:
  cmp fp, r8
  bls .L20796
  cmp r8, #0
  bne .L21063
.L20798:
  cmp r4, #240
  beq .L20800
  cmp r4, r5
  bhi .L21064
  cmp r4, #0
  beq .L20840
  cmp r8, #0
  beq .L20842
  cmp r8, r4
  bcs .L20840
.L20842:
  cmp fp, r4
  bcs .L20851
  mov r0, r8
  mov r1, fp
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20853
  mov r0, #4
  mov r1, r8
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
.L20840:
  cmp r4, r5
  beq .L20857
  cmp r8, r4
  bls .L20859
  cmp r8, r5
  bcs .L20857
  cmp fp, r5
  ldrcc r3, [sp, #28]
  ldrcs r3, [sp, #28]
  movcc r0, r8
  movcc r1, fp
  movcs r0, r8
  movcs r1, r5
.L21026:
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20857:
  cmp r5, #240
  beq .L20832
  cmp r8, r5
  bls .L20868
  cmp r8, #239
  bhi .L20832
  cmp fp, #239
  bhi .L20871
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20873
  mov r1, r8
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20836
.L20507:
  ldrh  r3, [lr, #70]
  ldr r4, .L21076
  and r1, r3, #255
  mov r0, r3, lsr #8
  cmp r0, r1
  ldrh  r2, [lr, #72]
  bls .L20744
  cmp ip, r0
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L21019
.L20752:
  cmp r0, #227
  bls .L21065
.L20748:
  mov r4, #240
  mov r5, r4
.L20763:
  mov r0, #0
  mov r1, r5
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20764:
  ands  r8, r6, #64
  beq .L20765
  mov r0, #4
  mov r1, #0
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
.L20767:
  cmp r4, r5
  beq .L20768
.L21056:
  mov r0, r5
  mov r3, fp
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20768:
  cmp r4, #240
  beq .L20770
  ldr r3, [sp, #12]
  mov r0, r4
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20770:
  cmp r8, #0
  movne r1, r4
  beq .L21066
.L21040:
  mov r3, r7
  mov r0, #4
  mov r2, #240
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_copy_tile_1D
.L20506:
  ldrh  r3, [lr, #68]
  ldr r4, .L21076
  and r1, r3, #255
  mov r0, r3, lsr #8
  cmp r0, r1
  ldrh  r2, [lr, #72]
  bls .L20714
  cmp ip, r0
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L21017
.L20722:
  cmp r0, #227
  bls .L21067
.L20718:
  mov r4, #240
  mov r5, r4
.L20733:
  mov r0, #0
  mov r1, r5
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20734:
  ands  r8, r6, #64
  beq .L20735
  mov r0, #4
  mov r1, #0
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
.L20737:
  cmp r5, r4
  bne .L21056
  b .L20768
.L20504:
  ldrh  r3, [lr, #68]
  ldr r2, .L21076
  and r1, r3, #255
  mov r0, r3, lsr #8
  cmp r0, r1
  ldrh  r4, [lr, #72]
  bls .L20552
  cmp ip, r0
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L21049
.L20560:
  cmp r0, #227
  bls .L21068
.L20556:
  mov r5, #240
  mov fp, r5
.L20559:
  ldrh  r3, [lr, #70]
  ldr r0, .L21076
  and r1, r3, #255
  mov r2, r3, lsr #8
  cmp r2, r1
  bls .L20563
  cmp ip, r2
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L21050
.L20571:
  cmp r2, #227
  bls .L21069
.L20567:
  mov r8, #240
  mov r4, r8
.L20570:
  cmp fp, r5
  bls .L20574
  cmp r5, #0
  bne .L21070
.L20576:
  cmp r4, #240
  beq .L20578
  cmp r4, r8
  bls .L20580
  cmp r8, #0
  beq .L20582
  cmp r5, #0
  beq .L20584
  cmp r5, r8
  bcs .L20582
  cmp fp, r8
  movcc r0, r5
  movcc r1, fp
  movcs r0, r5
  movcs r1, r8
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20582:
  cmp r5, r8
  bls .L20591
  cmp r5, r4
  bcs .L20593
  cmp fp, r4
  ldrcc r3, [sp, #12]
  ldrcs r3, [sp, #12]
  movcc r0, r5
  movcc r1, fp
  movcs r0, r5
  movcs r1, r4
.L20999:
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20593:
  cmp r5, r4
  bls .L20600
  cmp r5, #239
  bhi .L20602
  cmp fp, #239
  movls r0, r5
  bls .L21003
  ldr r3, [sp, #20]
  mov r0, r5
  mov r1, #240
.L21002:
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20602:
  cmp fp, #240
  beq .L20990
.L20606:
  ldr r3, [sp, #16]
  mov r0, fp
  mov r2, r7
  b .L21037
.L20505:
  mov r1, #240
  ldr r3, [sp, #12]
  mov r0, #0
  mov r2, r7
  str sl, [sp, #4]
  str r9, [sp, #8]
  str r6, [sp, #0]
  bl  render_scanline_conditional_tile
  ands  r1, r6, #64
  beq .L21038
  mov r3, r7
  mov r0, #4
  mov r1, #0
  mov r2, #240
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_copy_tile_1D
.L20531:
  cmp ip, r0
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  beq .L20994
.L20539:
  cmp r0, #227
  bhi .L20535
  ldrh  r3, [r4, #66]
  mov r2, r2, lsr #8
  and r4, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r5, r3
  movcs r5, #240
  cmp r4, #240
  and r8, r2, #63
  bls .L20538
.L21059:
  mov r4, #240
  b .L20538
.L20714:
  cmp ip, r0
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L20722
.L21017:
  cmp r1, #227
  bls .L20718
  b .L20722
.L20563:
  cmp ip, r2
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L20571
.L21050:
  cmp r1, #227
  bls .L20567
  b .L20571
.L20552:
  cmp ip, r0
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L20560
.L21049:
  cmp r1, #227
  bls .L20556
  b .L20560
.L20785:
  cmp ip, r2
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L20793
.L21054:
  cmp r1, #227
  bls .L20789
  b .L20793
.L20744:
  cmp ip, r0
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L20752
.L21019:
  cmp r1, #227
  bls .L20748
  b .L20752
.L20510:
  cmp ip, r1
  movcc r3, #0
  movcs r3, #1
  cmp ip, r2
  movcs r3, #0
  cmp r3, #0
  bne .L20518
.L20992:
  cmp r2, #227
  bls .L20535
  b .L20518
.L20774:
  cmp ip, r0
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L20782
.L21053:
  cmp r1, #227
  bls .L20778
  b .L20782
.L21066:
  mov r1, r4
.L21038:
  mov r3, r7
  mov r0, #4
  mov r2, #240
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_copy_tile_2D
.L20796:
  cmp r4, #240
  beq .L20886
  cmp r4, r5
  bls .L20888
  cmp r5, #0
  beq .L20890
  cmp fp, r5
  bcs .L20892
  cmp fp, #0
  movne r0, #0
  movne r1, fp
  bne .L21029
.L20890:
  cmp fp, r4
  bcs .L20895
  cmp fp, r5
  bhi .L21071
.L20897:
  cmp fp, #239
  bhi .L20903
  cmp fp, r4
  movhi r0, r4
  movhi r1, fp
  bhi .L21031
.L20905:
  cmp fp, r8
  beq .L20933
  mov r0, fp
  ldr r3, [sp, #24]
  mov r1, r8
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20933:
  cmp r4, #240
  beq .L20935
  cmp r4, r5
  bls .L20937
  cmp r5, #0
  beq .L20939
  cmp r8, #0
  beq .L20941
  cmp r8, r5
  bcs .L20939
  cmp r5, #240
  movhi r0, r8
  movhi r1, #240
  movls r0, r8
  movls r1, r5
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20939:
  cmp r8, r5
  bls .L20948
  cmp r8, r4
  bcc .L21072
.L20950:
  cmp r8, r4
  bls .L20956
  cmp r8, #239
  bhi .L20990
  ldr r3, [sp, #28]
  mov r0, r8
  mov r2, r7
  b .L21037
.L20574:
  cmp r4, #240
  beq .L20638
  cmp r4, r8
  bls .L20640
  cmp r8, #0
  beq .L20642
  cmp fp, r8
  bcs .L20644
  cmp fp, #0
  movne r0, #0
  movne r1, fp
  bne .L21005
.L20642:
  cmp fp, r4
  bcs .L20647
  cmp fp, r8
  movhi r0, r8
  movhi r1, fp
  bhi .L21006
.L20649:
  cmp fp, #239
  bhi .L20651
  cmp fp, r4
  movhi r0, r4
  movhi r1, fp
  bhi .L21009
.L20653:
  cmp fp, r5
  beq .L20670
  mov r0, fp
  ldr r3, [sp, #16]
  mov r1, r5
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20670:
  cmp r4, #240
  beq .L20672
  cmp r4, r8
  bls .L20674
  cmp r8, #0
  beq .L20676
  cmp r5, #0
  beq .L20678
  cmp r5, r8
  bcs .L20676
  cmp r8, #240
  movhi r0, r5
  movhi r1, #240
  movls r0, r5
  movls r1, r8
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20676:
  cmp r5, r8
  bls .L20685
  cmp r5, r4
  ldrcc r3, [sp, #12]
  movcc r0, r5
  bcc .L21013
.L20687:
  cmp r5, r4
  bls .L20689
  cmp r5, #239
  bhi .L20990
  ldr r3, [sp, #20]
  mov r0, r5
  mov r2, r7
  b .L21037
.L20765:
  mov r0, #4
  mov r1, r8
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20767
.L20735:
  mov r0, #4
  mov r1, r8
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20737
.L21067:
  ldrh  r3, [r4, #64]
  and fp, r2, #63
  and r4, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r5, r3
  movcs r5, #240
  cmp r4, #240
  movhi r4, #240
  cmp r5, r4
  bhi .L21058
  cmp r5, #0
  bne .L20733
  b .L20734
.L21069:
  ldrh  r3, [r0, #66]
  mov r2, r4, lsr #8
  and r8, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r4, r3
  movcs r4, #240
  cmp r8, #240
  and r2, r2, #63
  movhi r8, #240
  str r2, [sp, #20]
  b .L20570
.L21062:
  ldrh  r3, [r0, #66]
  mov r2, r4, lsr #8
  and r5, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r4, r3
  movcs r4, #240
  cmp r5, #240
  and r2, r2, #63
  movhi r5, #240
  str r2, [sp, #28]
  b .L20792
.L21061:
  ldrh  r3, [r2, #64]
  and r2, r4, #63
  and r8, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc fp, r3
  movcs fp, #240
  cmp r8, #240
  movhi r8, #240
  str r2, [sp, #24]
  b .L20781
.L21065:
  ldrh  r3, [r4, #66]
  mov r2, r2, lsr #8
  and r4, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r5, r3
  movcs r5, #240
  cmp r4, #240
  movhi r4, #240
  cmp r5, r4
  and fp, r2, #63
  bhi .L21058
  cmp r5, #0
  bne .L20763
  b .L20764
.L21068:
  ldrh  r3, [r2, #64]
  and r2, r4, #63
  and r5, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc fp, r3
  movcs fp, #240
  cmp r5, #240
  movhi r5, #240
  str r2, [sp, #16]
  b .L20559
.L21064:
  cmp r5, #0
  beq .L20804
  cmp r8, #0
  beq .L20806
  cmp r8, r5
  bcs .L20804
  cmp fp, r5
  movcc r0, r8
  movcc r1, fp
  movcs r0, r8
  movcs r1, r5
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20804:
  cmp r8, r5
  bls .L20813
  cmp r8, r4
  bcs .L20815
  cmp fp, r4
  bcs .L20817
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20819
  mov r0, #4
  mov r1, r8
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
.L20815:
  cmp r8, r4
  bls .L20830
  cmp r8, #239
  bhi .L20832
  cmp fp, #239
  movls r0, r8
  movhi r0, r8
  bhi .L21027
.L21028:
  ldr r3, [sp, #28]
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20836:
  ldr r3, [sp, #24]
  mov r0, fp
  mov r2, r7
  b .L21037
.L20580:
  cmp r4, #0
  beq .L20610
  cmp r5, #0
  beq .L20612
  cmp r5, r4
  bcs .L20610
.L20612:
  cmp fp, r4
  movcc r0, r5
  movcc r1, fp
  movcs r0, r5
  movcs r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20610:
  cmp r4, r8
  beq .L20619
  cmp r5, r4
  bls .L20621
  cmp r5, r8
  bcs .L20619
  cmp fp, r8
  ldrcc r3, [sp, #20]
  ldrcs r3, [sp, #20]
  movcc r0, r5
  movcc r1, fp
  movcs r0, r5
  movcs r1, r8
.L21001:
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20619:
  cmp r8, #240
  beq .L20602
  cmp r5, r8
  bls .L20630
  cmp r5, #239
  bhi .L20602
  cmp fp, #239
  movls r0, r5
  ldrls r3, [sp, #12]
  bls .L21004
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, #240
  b .L21002
.L21063:
  mov r0, #0
  mov r1, r8
  mov r2, r7
  ldr r3, [sp, #24]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20798
.L21070:
  mov r0, #0
  mov r1, r5
  mov r2, r7
  ldr r3, [sp, #16]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20576
.L20886:
  cmp fp, #0
  bne .L21073
.L20929:
  ands  r1, r6, #64
  beq .L20931
  mov r0, #4
  mov r1, #0
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20905
.L20638:
  cmp fp, #0
  beq .L20653
  mov r0, #0
  mov r1, fp
.L21010:
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20653
.L21058:
  cmp r4, #0
  bne .L21074
.L20757:
  ldr r3, [sp, #12]
  mov r0, r4
  mov r1, r5
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20759
  mov r1, r4
  mov r0, #4
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
.L20761:
  cmp r5, #240
  movne r0, r5
  movne r2, r7
  movne r3, fp
  bne .L21037
  b .L20990
.L20542:
  cmp r5, #0
  bne .L20547
  b .L20548
.L20800:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20884
  mov r1, r8
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
.L20832:
  cmp fp, #240
  bne .L20836
  b .L20990
.L20759:
  mov r1, r4
  mov r0, #4
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20761
.L21077:
  .align  2
.L21076:
  .word io_registers
  .word tile_mode_renderers
.L20937:
  cmp r4, #0
  beq .L20959
  cmp r8, #0
  beq .L20961
  cmp r8, r4
  bcc .L20961
.L20959:
  cmp r4, r5
  beq .L20968
  cmp r8, r4
  bls .L20970
  cmp r8, r5
  bcs .L20968
  cmp r5, #240
  ldrhi r3, [sp, #28]
  movhi r0, r8
  ldrls r3, [sp, #28]
  movls r0, r8
  bls .L21035
.L21036:
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20975:
  cmp r8, r5
  bls .L20979
  cmp r8, #239
  bhi .L20990
  mov r1, #240
  ldr r3, [sp, #12]
  mov r0, r8
  mov r2, r7
  str sl, [sp, #4]
  str r9, [sp, #8]
  str r6, [sp, #0]
  bl  render_scanline_conditional_tile
  tst r6, #64
  moveq r1, r8
  beq .L21038
  mov r1, r8
  b .L21040
.L20674:
  cmp r4, #0
  beq .L20692
  cmp r5, #0
  beq .L20694
  cmp r5, r4
  bcc .L20694
.L20692:
  cmp r4, r8
  beq .L20697
  cmp r5, r4
  bls .L20699
  cmp r5, r8
  bcs .L20697
  cmp r8, #240
  ldrhi r3, [sp, #20]
  movhi r0, r5
  ldrls r3, [sp, #20]
  movls r0, r5
  bls .L21014
.L21015:
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20704:
  cmp r5, r8
  bls .L20708
  cmp r5, #239
  bhi .L20990
  ldr r3, [sp, #12]
  mov r0, r5
  mov r2, r7
  b .L21037
.L20888:
  cmp r4, #0
  beq .L20907
  cmp fp, r4
  bcs .L20909
  cmp fp, #0
  bne .L21075
.L20907:
  cmp r4, r5
  beq .L20916
  cmp fp, r5
  bcs .L20918
  cmp fp, r4
  movhi r0, r4
  movhi r1, fp
  bhi .L21030
.L20916:
  cmp r5, #240
  beq .L20905
  cmp fp, #239
  bhi .L20922
  cmp fp, r5
  bls .L20905
  mov r0, r5
  mov r1, fp
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20925
  mov r0, #4
  mov r1, r5
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20905
.L20640:
  cmp r4, #0
  beq .L20655
  cmp fp, r4
  bcs .L20657
  cmp fp, #0
  movne r0, #0
  movne r1, fp
  bne .L21007
.L20655:
  cmp r4, r8
  beq .L20660
  cmp fp, r8
  bcs .L20662
  cmp fp, r4
  movhi r0, r4
  movhi r1, fp
  bhi .L21008
.L20660:
  cmp r8, #240
  beq .L20653
  cmp fp, #239
  bhi .L20666
  cmp fp, r8
  movhi r0, r8
  movhi r1, fp
  bls .L20653
  b .L21010
.L20935:
  cmp r8, #240
  beq .L20986
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, r4
  mov r2, r7
  str sl, [sp, #4]
  str r9, [sp, #8]
  str r6, [sp, #0]
  bl  render_scanline_conditional_tile
.L20986:
  tst r6, #64
  beq .L20988
  mov r1, r8
  mov r2, r4
  mov r3, r7
  mov r0, #4
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_copy_tile_1D
.L20672:
  cmp r5, #240
  beq .L20990
  mov r0, r5
  mov r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20990
.L20806:
  cmp fp, r5
  movcc r0, r8
  movcc r1, fp
  movcs r0, r8
  movcs r1, r5
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20813:
  cmp fp, r4
  bcs .L20823
  cmp fp, r5
  bls .L20815
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20826
  mov r1, r5
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20815
.L20584:
  cmp fp, r8
  movcc r0, r5
  movcc r1, fp
  movcs r0, r5
  movcs r1, r8
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20591:
  cmp fp, r4
  bcs .L20597
  cmp fp, r8
  bls .L20593
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, fp
  b .L20999
.L20678:
  cmp r8, #240
  movhi r0, r5
  movhi r1, #240
  movls r0, r5
  movls r1, r8
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20685:
  ldr r3, [sp, #12]
  mov r0, r8
.L21013:
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20687
.L20705:
  ldr r3, [sp, #20]
  mov r0, r4
.L21014:
  mov r1, r8
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20697:
  cmp r8, #240
  bne .L20704
  b .L20990
.L20976:
  ldr r3, [sp, #28]
  mov r0, r4
.L21035:
  mov r1, r5
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20968:
  cmp r5, #240
  bne .L20975
  b .L20990
.L21060:
  mov r0, #0
  mov r1, r4
  mov r2, r7
  mov r3, r8
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20544
.L21074:
  mov r0, #0
  mov r1, r4
  mov r2, r7
  mov r3, fp
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20757
.L20941:
  cmp r5, #240
  movhi r0, r8
  movhi r1, #240
  movls r0, r8
  movls r1, r5
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
.L20948:
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20954
  mov r1, r5
  mov r0, #4
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20950
.L20830:
  cmp fp, #239
  bhi .L20837
  cmp fp, r4
  bls .L20836
  mov r0, r4
  b .L21028
.L20600:
  cmp fp, #239
  bhi .L20607
  cmp fp, r4
  bls .L20606
  mov r0, r4
.L21003:
  ldr r3, [sp, #20]
.L21004:
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20606
.L20651:
  mov r0, r4
  mov r1, #240
.L21009:
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20653
.L20903:
  mov r0, r4
  mov r1, #240
.L21031:
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20905
.L20647:
  mov r0, r8
  mov r1, r4
.L21006:
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20649
.L20630:
  cmp fp, #239
  bhi .L20635
  cmp fp, r8
  movhi r0, r8
  ldrhi r3, [sp, #12]
  bls .L20606
  b .L21004
.L20859:
  cmp fp, r5
  bcs .L20864
  cmp fp, r4
  bls .L20857
  ldr r3, [sp, #28]
  mov r0, r4
  mov r1, fp
  b .L21026
.L20868:
  cmp fp, #239
  bhi .L20877
  cmp fp, r5
  bls .L20836
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20880
  mov r1, r5
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20836
.L20621:
  cmp fp, r8
  bcs .L20626
  cmp fp, r4
  bls .L20619
  ldr r3, [sp, #20]
  mov r0, r4
  mov r1, fp
  b .L21001
.L20578:
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, fp
  b .L21002
.L20988:
  mov r1, r8
  mov r2, r4
  mov r3, r7
  mov r0, #4
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_copy_tile_2D
.L20931:
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20905
.L20918:
  mov r0, r4
  mov r1, r5
.L21030:
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20916
.L20662:
  mov r0, r4
  mov r1, r8
.L21008:
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20660
.L20699:
  cmp r8, #240
  bls .L20705
  cmp r4, #239
  bhi .L20704
  ldr r3, [sp, #20]
  mov r0, r4
  b .L21015
.L20970:
  cmp r5, #240
  bls .L20976
  cmp r4, #239
  bhi .L20975
  ldr r3, [sp, #28]
  mov r0, r4
  b .L21036
.L20837:
  mov r0, r4
.L21027:
  ldr r3, [sp, #28]
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20832
.L20954:
  mov r1, r5
  mov r0, #4
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20950
.L20895:
  mov r0, r5
  mov r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20901
  mov r0, #4
  mov r1, r5
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20897
.L20956:
  ldr r3, [sp, #28]
  mov r0, r4
  mov r2, r7
  b .L21037
.L20689:
  ldr r3, [sp, #20]
  mov r0, r4
  mov r2, r7
  b .L21037
.L20708:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r2, r7
  b .L21037
.L20979:
  mov r1, #240
  ldr r3, [sp, #12]
  mov r0, r5
  mov r2, r7
  str sl, [sp, #4]
  str r9, [sp, #8]
  str r6, [sp, #0]
  bl  render_scanline_conditional_tile
  tst r6, #64
  movne r1, r5
  moveq r1, r5
  beq .L21038
  b .L21040
.L20892:
  mov r0, #0
  mov r1, r5
.L21029:
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20890
.L20657:
  mov r0, #0
  mov r1, r4
.L21007:
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20655
.L20644:
  mov r0, #0
  mov r1, r8
.L21005:
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20642
.L20961:
  mov r0, r8
  mov r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20966
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20959
.L20694:
  mov r0, r5
  mov r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20692
.L21073:
  mov r0, #0
  mov r1, fp
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  b .L20929
.L20823:
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20828
  mov r1, r5
  mov r0, #4
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20815
.L20597:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, r4
  b .L20999
.L20851:
  mov r0, r8
  mov r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20855
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20840
.L20666:
  mov r0, r8
  mov r1, #240
  b .L21010
.L20884:
  mov r1, r8
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20832
.L20922:
  mov r0, r5
  mov r1, #240
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20927
  mov r0, #4
  mov r1, r5
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20905
.L21071:
  mov r0, r5
  mov r1, fp
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20899
  mov r0, #4
  mov r1, r5
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20897
.L20607:
  ldr r3, [sp, #20]
  mov r0, r4
  mov r1, #240
  b .L21002
.L20909:
  mov r1, r4
  mov r0, #0
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  ands  r1, r6, #64
  beq .L20914
  mov r0, #4
  mov r1, #0
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20907
.L20901:
  mov r0, #4
  mov r1, r5
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20897
.L20966:
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20959
.L20635:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, #240
  b .L21002
.L20626:
  ldr r3, [sp, #20]
  mov r0, r4
  mov r1, r8
  b .L21001
.L20877:
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20882
  mov r1, r5
  mov r0, #4
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20832
.L20864:
  ldr r3, [sp, #28]
  mov r0, r4
  mov r1, r5
  b .L21026
.L21072:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20952
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20950
.L20817:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20821
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20815
.L20853:
  mov r0, #4
  mov r1, r8
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20840
.L20828:
  mov r1, r5
  mov r0, #4
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20815
.L20855:
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20840
.L20927:
  mov r0, #4
  mov r1, r5
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20905
.L20871:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  tst r6, #64
  beq .L20875
  mov r1, r8
  mov r0, #4
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20832
.L21075:
  mov r1, fp
  mov r0, #0
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_tile
  ands  r1, r6, #64
  beq .L20912
  mov r0, #4
  mov r1, #0
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_1D
  b .L20907
.L20899:
  mov r0, #4
  mov r1, r5
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20897
.L20826:
  mov r1, r5
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20815
.L20914:
  mov r0, #4
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20907
.L20925:
  mov r0, #4
  mov r1, r5
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20905
.L20882:
  mov r1, r5
  mov r0, #4
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20832
.L20875:
  mov r1, r8
  mov r0, #4
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20832
.L20819:
  mov r0, #4
  mov r1, r8
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20815
.L20952:
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20950
.L20912:
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20907
.L20821:
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20815
.L20873:
  mov r1, r8
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20836
.L20880:
  mov r1, r5
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_tile_2D
  b .L20836
  .size render_scanline_window_tile, .-render_scanline_window_tile
  .align  2
  .global render_scanline_tile
  .type render_scanline_tile, %function
render_scanline_tile:
  @ args = 0, pretend = 0, frame = 960
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr fp, .L21279
  ldr lr, .L21279+4
  ldr r3, [fp, #0]
  mov r5, r0
  cmp r3, #0
  sub sp, sp, #960
  mov r4, r1
  mov sl, lr
  ldrh  r0, [lr, #80]
  beq .L21079
  ldr r3, .L21279+8
  ldrh  r2, [lr, #6]
  and r1, r1, #7
  ldr ip, [r3, r2, asl #2]
  ldr r3, .L21279+12
  cmp ip, #0
  add r9, r3, r1, asl #7
  bne .L21267
  mov r3, r0, lsr #6
  and r3, r3, #3
  cmp r3, #2
  beq .L21157
  cmp r3, #3
  beq .L21158
  cmp r3, #1
  beq .L21268
.L21155:
  ldr r3, .L21279+16
  ldr ip, [r3, #0]
  ands  r1, ip, #4
  beq .L21221
  ldr r3, .L21279+20
  mov r2, #0
  ldrh  r3, [r3, #0]
.L21223:
  strh  r3, [r2, r5]  @ movhi
  add r2, r2, #2
  cmp r2, #480
  bne .L21223
  ands  r1, r4, #64
  bic r0, ip, #4
  beq .L21225
  mov r1, #0
  sub r2, r2, #240
  mov r3, r5
  bl  render_scanline_obj_normal_1D
.L21227:
  ldr r3, [fp, #0]
  cmp r3, #1
  bls .L21241
  ldr r7, .L21279+16
  and r8, r4, #64
  mov r6, #1
  b .L21229
.L21269:
  bl  render_scanline_obj_normal_1D
.L21234:
  ldr r3, [fp, #0]
  add r6, r6, #1
  cmp r3, r6
  add r7, r7, #4
  bls .L21241
.L21229:
  ldr ip, [r7, #4]
  mov r2, #240
  ands  r1, ip, #4
  mov r0, ip
  add r4, r9, ip, asl #5
  mov r3, r5
  beq .L21230
  mov r1, #0
  bic ip, ip, #4
  cmp r8, r1
  mov r0, ip
  bne .L21269
  mov r3, r5
  mov r0, ip
  mov r1, r8
  mov r2, #240
  bl  render_scanline_obj_normal_2D
  ldr r3, [fp, #0]
  add r6, r6, #1
  cmp r3, r6
  add r7, r7, #4
  bhi .L21229
.L21241:
  add sp, sp, #960
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L21079:
  mov r3, r0, lsr #6
  and r2, r3, #3
  ldr r3, .L21279+20
  cmp r2, #2
  ldrh  ip, [r3, #0]
  beq .L21236
  cmp r2, #3
  beq .L21270
.L21235:
  mov r3, ip, asl #16
  mov r3, r3, lsr #16
  mov r2, #0
.L21240:
  strh  r3, [r2, r5]  @ movhi
  add r2, r2, #2
  cmp r2, #480
  bne .L21240
  b .L21241
.L21267:
  mov r3, r0, lsr #6
  and r3, r3, #3
  cmp r3, #2
  beq .L21085
  cmp r3, #3
  beq .L21086
  cmp r3, #1
  beq .L21271
.L21083:
  ldr r3, .L21279+16
  ldr r3, [r3, #0]
  ands  r1, r3, #4
  beq .L21140
  mov r2, #0
  mov r6, sp
  mov r1, r2
.L21142:
  str r1, [r2, r6]
  add r2, r2, #4
  cmp r2, #960
  bne .L21142
  ands  r2, r4, #64
  bic r0, r3, #4
  beq .L21144
  mov r2, #240
  mov r3, sp
  bl  render_scanline_obj_partial_alpha_1D
.L21146:
  ldr r3, [fp, #0]
  cmp r3, #1
  bls .L21169
  ldr r8, .L21279+16
  and sl, r4, #64
  mov r7, #1
  b .L21149
.L21272:
  bl  render_scanline_obj_partial_alpha_1D
.L21154:
  ldr r3, [fp, #0]
  add r7, r7, #1
  cmp r3, r7
  add r8, r8, #4
  bls .L21169
.L21149:
  ldr ip, [r8, #4]
  mov r2, #240
  ands  r1, ip, #4
  mov r0, ip
  add r4, r9, ip, asl #5
  mov r3, sp
  beq .L21150
  mov r1, #0
  bic ip, ip, #4
  cmp sl, r1
  mov r0, ip
  bne .L21272
  mov r3, sp
  mov r0, ip
  mov r1, sl
  mov r2, #240
  bl  render_scanline_obj_partial_alpha_2D
  ldr r3, [fp, #0]
  add r7, r7, #1
  cmp r3, r7
  add r8, r8, #4
  bhi .L21149
.L21169:
  mov r0, sp
  mov r1, r5
  mov r2, #0
  mov r3, #240
  bl  expand_blend
  b .L21241
.L21236:
  tst r0, #32
  beq .L21235
  ldrh  r3, [lr, #84]
  ldr r1, .L21279+24
  and r3, r3, #31
  cmp r3, #16
  movcs r3, #16
  orr r2, ip, ip, asl #16
  and r1, r2, r1
  rsb r0, r3, #16
  rsb r2, r3, r3, asl #6
  mul ip, r1, r0
  add r3, r3, r2, asl #5
  rsb r3, r3, r3, asl #16
  ldr r1, .L21279+24
  mov r3, r3, lsr #4
  and r1, r3, r1
  ldr r2, .L21279+24
  add r1, r1, ip, lsr #4
  and r2, r1, r2
  orr ip, r2, r2, lsr #16
  b .L21235
.L21085:
  ldrh  r3, [lr, #84]
  tst r3, #31
  beq .L21083
  tst r0, #63
  beq .L21083
  ldr r3, .L21279+16
  ldr r3, [r3, #0]
  ands  r1, r3, #4
  beq .L21108
  mov r2, #0
  mov r6, sp
  mov r1, r2
.L21110:
  str r1, [r2, r6]
  add r2, r2, #4
  cmp r2, #960
  bne .L21110
  ands  r2, r4, #64
  bic r0, r3, #4
  beq .L21112
  mov r2, #240
  mov r3, sp
  bl  render_scanline_obj_partial_alpha_1D
.L21114:
  ldr r3, [fp, #0]
  cmp r3, #1
  bls .L21115
  ldr r8, .L21279+16
  and sl, r4, #64
  mov r7, #1
  b .L21117
.L21273:
  bl  render_scanline_obj_partial_alpha_1D
.L21122:
  ldr r3, [fp, #0]
  add r7, r7, #1
  cmp r3, r7
  add r8, r8, #4
  bls .L21115
.L21117:
  ldr ip, [r8, #4]
  mov r2, #240
  ands  r1, ip, #4
  mov r0, ip
  add r4, r9, ip, asl #5
  mov r3, sp
  beq .L21118
  mov r1, #0
  bic ip, ip, #4
  cmp sl, r1
  mov r0, ip
  bne .L21273
  mov r0, ip
  mov r1, sl
  mov r2, #240
  mov r3, sp
  bl  render_scanline_obj_partial_alpha_2D
  b .L21122
.L21157:
  ldrh  r3, [lr, #84]
  tst r3, #31
  beq .L21155
  tst r0, #63
  beq .L21155
  ldr r3, .L21279+16
  ldr r3, [r3, #0]
  ands  r1, r3, #4
  beq .L21179
  mov r2, ip
.L21181:
  mov r1, #0  @ movhi
  strh  r1, [r2, r5]  @ movhi
  add r2, r2, #2
  cmp r2, #480
  bne .L21181
  ands  r1, r4, #64
  bic r0, r3, #4
  beq .L21183
  mov r1, #0
  sub r2, r2, #240
  mov r3, r5
  bl  render_scanline_obj_color16_1D
.L21185:
  ldr r3, [fp, #0]
  cmp r3, #1
  bls .L21186
  ldr r7, .L21279+16
  and r8, r4, #64
  mov r6, #1
  b .L21188
.L21274:
  bl  render_scanline_obj_color16_1D
.L21193:
  ldr r3, [fp, #0]
  add r6, r6, #1
  cmp r3, r6
  add r7, r7, #4
  bls .L21186
.L21188:
  ldr ip, [r7, #4]
  mov r2, #240
  ands  r1, ip, #4
  mov r0, ip
  add r4, r9, ip, asl #5
  mov r3, r5
  beq .L21189
  mov r1, #0
  bic ip, ip, #4
  cmp r8, r1
  mov r0, ip
  bne .L21274
  mov r0, ip
  mov r1, r8
  mov r2, #240
  mov r3, r5
  bl  render_scanline_obj_color16_2D
  b .L21193
.L21230:
  mov lr, pc
  ldr pc, [r4, #4]
  b .L21234
.L21150:
  mov lr, pc
  ldr pc, [r4, #28]
  b .L21154
.L21270:
  tst r0, #32
  beq .L21235
  ldrh  r3, [lr, #84]
  ldr r0, .L21279+24
  and r3, r3, #31
  orr r2, ip, ip, asl #16
  rsb r3, r3, #16
  and r0, r2, r0
  cmp r3, #0
  movlt r3, #0
  mul r1, r3, r0
  ldr r2, .L21279+24
  mov r1, r1, lsr #4
  and r2, r1, r2
  orr ip, r2, r2, lsr #16
  b .L21235
.L21144:
  mov r1, r2
  mov r3, sp
  mov r2, #240
  bl  render_scanline_obj_partial_alpha_2D
  b .L21146
.L21225:
  mov r2, #240
  mov r3, r5
  bl  render_scanline_obj_normal_2D
  b .L21227
.L21140:
  mov r0, r3
  add ip, r9, r3, asl #5
  mov r2, #240
  mov r3, sp
  mov r6, sp
  mov lr, pc
  ldr pc, [ip, #24]
  b .L21146
.L21221:
  mov r0, ip
  mov r2, #240
  mov r3, r5
  mov lr, pc
  ldr pc, [r9, ip, asl #5]
  b .L21227
.L21086:
  ldrh  r3, [lr, #84]
  tst r3, #31
  beq .L21083
  tst r0, #63
  beq .L21083
  ldr r3, .L21279+16
  ldr r3, [r3, #0]
  ands  r1, r3, #4
  beq .L21125
  mov r2, #0
  mov r6, sp
  mov r1, r2
.L21127:
  str r1, [r2, r6]
  add r2, r2, #4
  cmp r2, #960
  bne .L21127
  ands  r2, r4, #64
  bic r0, r3, #4
  beq .L21129
  mov r2, #240
  mov r3, sp
  bl  render_scanline_obj_partial_alpha_1D
.L21131:
  ldr r3, [fp, #0]
  cmp r3, #1
  bls .L21132
  ldr r8, .L21279+16
  and sl, r4, #64
  mov r7, #1
  b .L21134
.L21275:
  bl  render_scanline_obj_partial_alpha_1D
.L21139:
  ldr r3, [fp, #0]
  add r7, r7, #1
  cmp r3, r7
  add r8, r8, #4
  bls .L21132
.L21134:
  ldr ip, [r8, #4]
  mov r2, #240
  ands  r1, ip, #4
  mov r0, ip
  add r4, r9, ip, asl #5
  mov r3, sp
  beq .L21135
  mov r1, #0
  bic ip, ip, #4
  cmp sl, r1
  mov r0, ip
  bne .L21275
  mov r0, ip
  mov r1, sl
  mov r2, #240
  mov r3, sp
  bl  render_scanline_obj_partial_alpha_2D
  b .L21139
.L21158:
  ldrh  r3, [lr, #84]
  tst r3, #31
  beq .L21155
  tst r0, #63
  beq .L21155
  ldr r3, .L21279+16
  ldr r3, [r3, #0]
  ands  r1, r3, #4
  beq .L21201
  mov r2, #0
.L21203:
  mov r1, #0  @ movhi
  strh  r1, [r2, r5]  @ movhi
  add r2, r2, #2
  cmp r2, #480
  bne .L21203
  ands  r1, r4, #64
  bic r0, r3, #4
  beq .L21205
  mov r1, #0
  sub r2, r2, #240
  mov r3, r5
  bl  render_scanline_obj_color16_1D
.L21207:
  ldr r3, [fp, #0]
  cmp r3, #1
  bls .L21208
  ldr r6, .L21279+16
  and r8, r4, #64
  mov r7, #1
  b .L21210
.L21276:
  bl  render_scanline_obj_color16_1D
.L21215:
  ldr r3, [fp, #0]
  add r7, r7, #1
  cmp r3, r7
  add r6, r6, #4
  bls .L21208
.L21210:
  ldr ip, [r6, #4]
  mov r2, #240
  ands  r1, ip, #4
  mov r0, ip
  add r4, r9, ip, asl #5
  mov r3, r5
  beq .L21211
  mov r1, #0
  bic ip, ip, #4
  cmp r8, r1
  mov r0, ip
  bne .L21276
  mov r0, ip
  mov r1, r8
  mov r2, #240
  mov r3, r5
  bl  render_scanline_obj_color16_2D
  b .L21215
.L21118:
  mov lr, pc
  ldr pc, [r4, #28]
  b .L21122
.L21189:
  mov lr, pc
  ldr pc, [r4, #20]
  b .L21193
.L21135:
  mov lr, pc
  ldr pc, [r4, #28]
  b .L21139
.L21211:
  mov lr, pc
  ldr pc, [r4, #20]
  b .L21215
.L21271:
  ldrh  r2, [lr, #82]
  ldr r3, .L21279+28
  and r3, r2, r3
  cmp r3, #31
  beq .L21083
  tst r0, #63
  beq .L21083
  tst r0, #16128
  beq .L21083
  ldr r3, .L21279+16
  ldr r3, [r3, #0]
  ands  r1, r3, #4
  beq .L21090
  mov r2, #0
  mov r6, sp
  mov r1, r2
.L21092:
  str r1, [r2, r6]
  add r2, r2, #4
  cmp r2, #960
  bne .L21092
  ands  r2, r4, #64
  bic r0, r3, #4
  beq .L21094
  mov r2, #240
  mov r3, sp
  bl  render_scanline_obj_alpha_obj_1D
.L21096:
  ldr r3, [fp, #0]
  cmp r3, #1
  bls .L21169
  ldr r8, .L21279+16
  and sl, r4, #64
  mov r7, #1
  b .L21099
.L21277:
  mov r1, #0
  bic ip, ip, #4
  cmp sl, r1
  mov r0, ip
  beq .L21102
  bl  render_scanline_obj_alpha_obj_1D
.L21104:
  ldr r3, [fp, #0]
  add r7, r7, #1
  cmp r3, r7
  add r8, r8, #4
  bls .L21169
.L21099:
  ldr ip, [r8, #4]
  mov r2, #240
  ands  r1, ip, #4
  mov r0, ip
  add r4, r9, ip, asl #5
  mov r3, sp
  bne .L21277
  mov lr, pc
  ldr pc, [r4, #12]
  b .L21104
.L21268:
  ldrh  r2, [lr, #82]
  ldr r3, .L21279+28
  and r3, r2, r3
  cmp r3, #31
  beq .L21155
  tst r0, #63
  beq .L21155
  tst r0, #16128
  beq .L21155
  ldr r3, .L21279+16
  ldr r3, [r3, #0]
  ands  r1, r3, #4
  beq .L21162
  mov r2, ip
  mov r6, sp
  mov r1, ip
.L21164:
  str r1, [r2, r6]
  add r2, r2, #4
  cmp r2, #960
  bne .L21164
  ands  r2, r4, #64
  bic r0, r3, #4
  beq .L21166
  mov r2, #240
  mov r3, sp
  bl  render_scanline_obj_alpha_obj_1D
.L21168:
  ldr r3, [fp, #0]
  cmp r3, #1
  bls .L21169
  ldr r8, .L21279+16
  and sl, r4, #64
  mov r7, #1
  b .L21171
.L21278:
  mov r1, #0
  bic ip, ip, #4
  cmp sl, r1
  mov r0, ip
  beq .L21174
  bl  render_scanline_obj_alpha_obj_1D
.L21176:
  ldr r3, [fp, #0]
  add r7, r7, #1
  cmp r3, r7
  add r8, r8, #4
  bls .L21169
.L21171:
  ldr ip, [r8, #4]
  mov r2, #240
  ands  r1, ip, #4
  mov r0, ip
  add r4, r9, ip, asl #5
  mov r3, sp
  bne .L21278
  mov lr, pc
  ldr pc, [r4, #12]
  b .L21176
.L21174:
  mov r0, ip
  mov r1, sl
  mov r2, #240
  mov r3, sp
  bl  render_scanline_obj_alpha_obj_2D
  b .L21176
.L21102:
  mov r0, ip
  mov r1, sl
  mov r2, #240
  mov r3, sp
  bl  render_scanline_obj_alpha_obj_2D
  b .L21104
.L21115:
  mov r0, sp
  mov r1, r5
  mov r2, #0
  mov r3, #240
  bl  expand_brighten_partial_alpha
  b .L21241
.L21186:
  ldrh  r2, [sl, #84]
  ldr r7, .L21279+24
  and r2, r2, #31
  cmp r2, #16
  movcs r2, #16
  rsb r3, r2, r2, asl #6
  add r3, r2, r3, asl #5
  rsb r3, r3, r3, asl #16
  mov r3, r3, lsr #4
  ldr r6, .L21279+20
  and r7, r3, r7
  rsb r4, r2, #16
  mov lr, #0
.L21194:
  ldrh  r3, [r5, #0]
  ldr ip, .L21279+24
  mov r2, r3, asl #23
  mov r2, r2, lsr #23
  tst r3, #512
  mov r2, r2, asl #1
  mov r1, r3, asl #23
  ldrneh  r3, [r2, r6]
  mov r0, ip
  orrne r3, r3, r3, asl #16
  andne ip, r3, ip
  mulne r2, ip, r4
  mov r1, r1, lsr #23
  mov r1, r1, asl #1
  addne r2, r7, r2, lsr #4
  andne r0, r2, r0
  ldreqh  r1, [r1, r6]
  orrne r3, r0, r0, lsr #16
  add lr, lr, #1
  strneh  r3, [r5, #0]  @ movhi
  streqh  r1, [r5, #0]  @ movhi
  cmp lr, #240
  add r5, r5, #2
  bne .L21194
  b .L21241
.L21132:
  mov r0, sp
  mov r1, r5
  mov r2, #0
  mov r3, #240
  bl  expand_darken_partial_alpha
  b .L21241
.L21208:
  ldrh  r3, [sl, #84]
  ldr r6, .L21279+20
  and r3, r3, #31
  rsb r3, r3, #16
  cmp r3, #0
  movge r4, r3
  movlt r4, #0
  mov lr, #0
.L21216:
  ldrh  r3, [r5, #0]
  ldr ip, .L21279+24
  mov r2, r3, asl #23
  mov r2, r2, lsr #23
  tst r3, #512
  mov r2, r2, asl #1
  mov r1, r3, asl #23
  ldrneh  r3, [r2, r6]
  mov r0, ip
  orrne r3, r3, r3, asl #16
  andne ip, r3, ip
  mulne r2, r4, ip
  mov r1, r1, lsr #23
  mov r1, r1, asl #1
  movne r2, r2, lsr #4
  andne r0, r2, r0
  ldreqh  r1, [r1, r6]
  orrne r3, r0, r0, lsr #16
  add lr, lr, #1
  strneh  r3, [r5, #0]  @ movhi
  streqh  r1, [r5, #0]  @ movhi
  cmp lr, #240
  add r5, r5, #2
  bne .L21216
  b .L21241
.L21183:
  mov r2, #240
  mov r3, r5
  bl  render_scanline_obj_color16_2D
  b .L21185
.L21179:
  mov r0, r3
  add ip, r9, r3, asl #5
  mov r2, #240
  mov r3, r5
  mov lr, pc
  ldr pc, [ip, #16]
  b .L21185
.L21205:
  mov r2, #240
  mov r3, r5
  bl  render_scanline_obj_color16_2D
  b .L21207
.L21201:
  mov r0, r3
  add ip, r9, r3, asl #5
  mov r2, #240
  mov r3, r5
  mov lr, pc
  ldr pc, [ip, #16]
  b .L21207
.L21129:
  mov r1, r2
  mov r3, sp
  mov r2, #240
  bl  render_scanline_obj_partial_alpha_2D
  b .L21131
.L21125:
  mov r0, r3
  add ip, r9, r3, asl #5
  mov r2, #240
  mov r3, sp
  mov r6, sp
  mov lr, pc
  ldr pc, [ip, #24]
  b .L21131
.L21112:
  mov r1, r2
  mov r3, sp
  mov r2, #240
  bl  render_scanline_obj_partial_alpha_2D
  b .L21114
.L21108:
  mov r0, r3
  add ip, r9, r3, asl #5
  mov r2, #240
  mov r3, sp
  mov r6, sp
  mov lr, pc
  ldr pc, [ip, #24]
  b .L21114
.L21166:
  mov r1, r2
  mov r3, sp
  mov r2, #240
  bl  render_scanline_obj_alpha_obj_2D
  b .L21168
.L21094:
  mov r1, r2
  mov r3, sp
  mov r2, #240
  bl  render_scanline_obj_alpha_obj_2D
  b .L21096
.L21162:
  mov r0, r3
  add ip, r9, r3, asl #5
  mov r2, #240
  mov r3, sp
  mov r6, sp
  mov lr, pc
  ldr pc, [ip, #8]
  b .L21168
.L21090:
  mov r0, r3
  add ip, r9, r3, asl #5
  mov r2, #240
  mov r3, sp
  mov r6, sp
  mov lr, pc
  ldr pc, [ip, #8]
  b .L21096
.L21280:
  .align  2
.L21279:
  .word layer_count
  .word io_registers
  .word obj_alpha_count
  .word tile_mode_renderers
  .word layer_order
  .word palette_ram_converted
  .word 132184095
  .word 7967
  .size render_scanline_tile, .-render_scanline_tile
  .align  2
  .global print_string_pad
  .type print_string_pad, %function
print_string_pad:
  @ args = 8, pretend = 0, frame = 16
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr lr, .L21320
  sub sp, sp, #16
  ldr ip, .L21320+4
  ldr r5, [lr, #0]
  ldr sl, [sp, #52]
  ldr r4, [ip, #0]
  str r0, [sp, #4]
  add ip, sl, #10
  mov r2, r2, asl #16
  mov fp, r3
  ldrh  r3, [r5, #16]
  ldr r5, [r5, #20]
  cmp ip, r4
  mov r4, r2, lsr #16
  ldr r2, [sp, #4]
  mov r1, r1, asl #16
  str r5, [sp, #0]
  mov r0, r1, lsr #16
  ldrb  ip, [r2, #0]  @ zero_extendqisi2
  bcs .L21313
  cmp ip, #0
  beq .L21313
  ldr r2, .L21320+8
  mov r9, r3, lsr #1
  ldr r2, [r2, #0]
  mla r3, sl, r9, fp
  add r1, r9, r9, asl #2
  str r2, [sp, #12]
  ldr r2, [sp, #0]
  mov r1, r1, asl #2
  str r1, [sp, #8]
  add r6, r2, r3, asl #1
  mov r5, r9, asl #1
  mov r1, fp
  mov r7, #0
  mov r8, #1
.L21285:
  cmp ip, #10
  beq .L21319
  ldr r3, .L21320+12
  mov lr, #0
  ldr r2, [r3, ip, asl #2]
  ldr r3, .L21320+16
  mov ip, r6
  add r2, r3, r2, asl #1
.L21289:
  ldrh  r3, [r2, #0]
  add lr, lr, #1
  tst r3, #32768
  streqh  r4, [ip, #0]  @ movhi
  strneh  r0, [ip, #0]  @ movhi
  tst r3, #16384
  streqh  r4, [ip, #2]  @ movhi
  strneh  r0, [ip, #2]  @ movhi
  tst r3, #8192
  streqh  r4, [ip, #4]  @ movhi
  strneh  r0, [ip, #4]  @ movhi
  tst r3, #4096
  streqh  r4, [ip, #6]  @ movhi
  strneh  r0, [ip, #6]  @ movhi
  tst r3, #2048
  streqh  r4, [ip, #8]  @ movhi
  strneh  r0, [ip, #8]  @ movhi
  tst r3, #1024
  strneh  r0, [ip, #10] @ movhi
  streqh  r4, [ip, #10] @ movhi
  cmp lr, #10
  add ip, ip, r5
  add r2, r2, #2
  bne .L21289
  add r3, r6, r5
  add r2, r5, r5, asl #3
  add r3, r3, r2
  ldr r2, [sp, #8]
  add r1, r1, #6
  rsb r3, r2, r3
  add r6, r3, #12
.L21288:
  ldr r3, [sp, #4]
  ldr r2, [sp, #56]
  ldrb  ip, [r3, r8]  @ zero_extendqisi2
  add r7, r7, #1
  cmp r2, r7
  movls r3, #0
  movhi r3, #1
  cmp ip, #0
  movne r3, #0
  ldr r2, [sp, #12]
  cmp r3, #0
  add r3, r1, #6
  movne ip, #32
  addeq r8, r8, #1
  cmp r3, r2
  bcs .L21313
  cmp ip, #0
  bne .L21285
.L21313:
  add sp, sp, #16
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L21319:
  add sl, sl, #10
  mla r3, sl, r9, fp
  ldr r2, [sp, #0]
  mov r1, fp
  add r6, r2, r3, asl #1
  b .L21288
.L21321:
  .align  2
.L21320:
  .word screen
  .word resolution_height
  .word resolution_width
  .word _font_offset
  .word _font_bits
  .size print_string_pad, .-print_string_pad
  .align  2
  .global print_string
  .type print_string, %function
print_string:
  @ args = 4, pretend = 0, frame = 12
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr lr, .L21358
  sub sp, sp, #12
  ldr ip, .L21358+4
  ldr r5, [lr, #0]
  ldr r8, [sp, #48]
  ldr r4, [ip, #0]
  mov r9, r3
  ldrh  r3, [r5, #16]
  ldr r5, [r5, #20]
  add ip, r8, #10
  cmp ip, r4
  mov fp, r0
  mov r1, r1, asl #16
  mov r2, r2, asl #16
  str r5, [sp, #0]
  mov r0, r1, lsr #16
  mov r4, r2, lsr #16
  ldrb  ip, [fp, #0]  @ zero_extendqisi2
  bcs .L21352
  cmp ip, #0
  beq .L21352
  ldr r2, .L21358+8
  mov sl, r3, lsr #1
  ldr r2, [r2, #0]
  mla r3, r8, sl, r9
  add r1, sl, sl, asl #2
  str r2, [sp, #8]
  ldr r2, [sp, #0]
  mov r1, r1, asl #2
  cmp ip, #10
  str r1, [sp, #4]
  add r6, r2, r3, asl #1
  mov r5, sl, asl #1
  mov r1, r9
  mov r7, #1
  beq .L21357
.L21327:
  ldr r3, .L21358+12
  mov lr, #0
  ldr r2, [r3, ip, asl #2]
  ldr r3, .L21358+16
  mov ip, r6
  add r2, r3, r2, asl #1
.L21330:
  ldrh  r3, [r2, #0]
  add lr, lr, #1
  tst r3, #32768
  streqh  r4, [ip, #0]  @ movhi
  strneh  r0, [ip, #0]  @ movhi
  tst r3, #16384
  streqh  r4, [ip, #2]  @ movhi
  strneh  r0, [ip, #2]  @ movhi
  tst r3, #8192
  streqh  r4, [ip, #4]  @ movhi
  strneh  r0, [ip, #4]  @ movhi
  tst r3, #4096
  streqh  r4, [ip, #6]  @ movhi
  strneh  r0, [ip, #6]  @ movhi
  tst r3, #2048
  streqh  r4, [ip, #8]  @ movhi
  strneh  r0, [ip, #8]  @ movhi
  tst r3, #1024
  strneh  r0, [ip, #10] @ movhi
  streqh  r4, [ip, #10] @ movhi
  cmp lr, #10
  add ip, ip, r5
  add r2, r2, #2
  bne .L21330
  add r3, r5, r6
  add r2, r5, r5, asl #3
  add r3, r3, r2
  ldr r2, [sp, #4]
  add r1, r1, #6
  rsb r3, r2, r3
  ldr r2, [sp, #8]
  add r6, r3, #12
  add r3, r1, #6
  cmp r3, r2
  ldrb  ip, [r7, fp]  @ zero_extendqisi2
  bcs .L21352
.L21356:
  cmp ip, #0
  beq .L21352
  cmp ip, #10
  add r7, r7, #1
  bne .L21327
.L21357:
  add r8, r8, #10
  mla r3, r8, sl, r9
  ldr r2, [sp, #0]
  mov r1, r9
  add r6, r2, r3, asl #1
  ldr r2, [sp, #8]
  add r3, r1, #6
  cmp r3, r2
  ldrb  ip, [r7, fp]  @ zero_extendqisi2
  bcc .L21356
.L21352:
  add sp, sp, #12
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L21359:
  .align  2
.L21358:
  .word screen
  .word resolution_height
  .word resolution_width
  .word _font_offset
  .word _font_bits
  .size print_string, .-print_string
  .align  2
  .global render_scanline_obj_copy_bitmap_2D
  .type render_scanline_obj_copy_bitmap_2D, %function
render_scanline_obj_copy_bitmap_2D:
  @ args = 0, pretend = 0, frame = 596
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr lr, .L22220
  add r0, r0, r0, asl #2
  ldrh  r4, [lr, #6]
  ldr ip, .L22220+4
  add r0, r4, r0, asl #5
  ldr ip, [ip, r0, asl #2]
  sub sp, sp, #596
  ldrh  r6, [lr, #0]
  ldrh  r5, [lr, #74]
  str ip, [sp, #56]
  cmp ip, #0
  ldr lr, .L22220+8
  ldr ip, .L22220+12
  str r4, [sp, #52]
  and r4, r6, #7
  add r4, ip, r4, asl #2
  add r0, lr, r0, asl #7
  str r4, [sp, #40]
  str r0, [sp, #60]
  str r1, [sp, #16]
  str r2, [sp, #12]
  str r3, [sp, #8]
  mov r5, r5, lsr #8
  beq .L22165
  and r7, r5, #16
  add ip, r3, r1, asl #1
  rsb lr, r1, r2
  mov r0, #0
  and r6, r6, #64
  and r5, r5, #4
  str r7, [sp, #76]
  str r6, [sp, #80]
  str r5, [sp, #84]
  str ip, [sp, #88]
  str lr, [sp, #108]
  str r0, [sp, #44]
  mov r1, r0
.L21363:
  ldr r2, [sp, #60]
  ldr r4, .L22220+16
  ldrb  r3, [r1, r2]  @ zero_extendqisi2
  ldr ip, .L22220+20
  mov r3, r3, asl #3
  ldrh  r8, [r3, r4]
  add r3, r3, r4
  ldrh  sl, [r3, #2]
  mov r6, r8, lsr #12
  and r2, r6, #12
  orr r2, r2, sl, lsr #14
  ldr ip, [ip, r2, asl #2]
  ands  r7, r8, #512
  mov r1, sl, asl #23
  moveq lr, ip
  mov r9, r1, asr #23
  str r7, [sp, #28]
  ldr r7, [sp, #12]
  addne r1, r9, ip, asl #1
  addeq r1, r9, lr
  str r6, [sp, #24]
  ldr r6, [sp, #16]
  ldrh  r3, [r3, #4]
  cmp r1, r7
  movcc r7, r1
  ldr r0, [sp, #12]
  ldr r1, [sp, #16]
  cmp r9, r6
  movcs r6, r9
  str r3, [sp, #20]
  cmp r0, r6
  movls r3, #0
  movhi r3, #1
  cmp r1, r7
  movcs r3, #0
  cmp r3, #0
  str r2, [sp, #48]
  str ip, [sp, #112]
  beq .L21367
  cmp r7, r6
  ldr r3, .L22220+24
  movls r4, r6, asl #1
  ldrh  r0, [r3, #0]
  strls r4, [sp, #0]
  bls .L21369
  mov r2, r6, asl #1
  add r3, sp, #116
  str r2, [sp, #0]
  rsb r1, r6, r7
  add r2, r3, r2
  mov r3, #0
.L21371:
  add r3, r3, #1
  cmp r1, r3
  strh  r0, [r2], #2  @ movhi
  bne .L21371
.L21369:
  ldr fp, .L22220+28
  ldr r3, [fp, #0]
  cmp r3, #0
  beq .L21372
  ldr r5, .L22220+32
  mov r4, #0
  b .L21374
.L22194:
  ldr ip, [sp, #76]
  cmp ip, #0
  bic ip, r0, #4
  beq .L21377
  ldr lr, [sp, #80]
  mov r0, ip
  cmp lr, #0
  mov r1, r6
  mov r2, r7
  add r3, sp, #116
  beq .L21379
  bl  render_scanline_obj_normal_1D
.L21377:
  ldr r3, [fp, #0]
  add r4, r4, #1
  cmp r3, r4
  add r5, r5, #4
  bls .L21372
.L21374:
  ldr r0, [r5, #0]
  tst r0, #4
  bne .L22194
  ldr r0, [sp, #84]
  mov r1, r7
  cmp r0, #0
  add r2, sp, #116
  mov r0, r6
  beq .L21377
  ldr r3, [sp, #40]
  mov lr, pc
  ldr pc, [r3, #0]
  ldr r3, [fp, #0]
  add r4, r4, #1
  cmp r3, r4
  add r5, r5, #4
  bhi .L21374
.L21372:
  and r0, r8, #255
  cmp r0, #160
  ldr r6, [sp, #0]
  ldr r3, .L22220+36
  ldr r7, [sp, #48]
  add r4, sp, #116
  subgt r0, r0, #256
  tst r8, #256
  add r5, r4, r6
  ldr fp, [r3, r7, asl #2]
  beq .L21384
  tst r8, #8192
  beq .L21386
  mov r3, sl, lsr #4
  ldr ip, [sp, #28]
  ldr lr, .L22220+16
  ldr r1, [sp, #112]
  and r3, r3, #992
  cmp ip, #0
  add r3, r3, lr
  add r2, r1, r1, lsr #31
  add r1, fp, fp, lsr #31
  ldrh  r4, [r3, #30]
  mov lr, r1, asr #1
  ldrne r6, [sp, #112]
  ldr r1, [sp, #16]
  mov ip, r2, asr #1
  str r4, [sp, #32]
  moveq r7, ip
  movne r4, r6, asl #1
  ldreq r4, [sp, #112]
  moveq r6, lr
  movne r7, ip, asl #1
  movne r6, lr, asl #1
  cmp r9, r1
  ldrh  sl, [r3, #6]
  ldrh  r2, [r3, #14]
  ldrh  r8, [r3, #22]
  bge .L21391
  rsb r1, r9, r1
  rsb r4, r1, r4
  cmp r4, #0
  ble .L21367
  ldr r9, [sp, #16]
  rsb r7, r1, r7
.L21391:
  ldr r1, [sp, #12]
  add r3, r9, r4
  cmp r3, r1
  blt .L21394
  rsb r4, r9, r1
  cmp r4, #0
  ble .L21367
.L21394:
  add r0, r0, r6
  ldr r6, [sp, #32]
  mov r2, r2, asl #16
  mov ip, ip, asl #8
  mov r3, sl, asl #16
  mov r1, r6, asl #16
  str ip, [sp, #104]
  mov r6, r2, asr #16
  mov ip, lr, asl #8
  ldr r2, [sp, #52]
  ldr lr, [sp, #8]
  mov r3, r3, asr #16
  cmp r8, #0
  str r3, [sp, #64]
  mov r1, r1, asr #16
  add sl, lr, r9, asl #1
  rsb r0, r0, r2
  bne .L21396
  mla r3, r0, r1, ip
  mov r1, r3, asr #8
  cmp r1, fp
  bcs .L21367
  ldr ip, [sp, #20]
  mov r2, r1, lsr #3
  mov r3, ip, asl #22
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #2
  ldr r3, .L22220+40
  cmp r4, #0
  add r9, r3, r1, asl #3
  ble .L21367
  ldr r2, [sp, #64]
  mul r3, r0, r6
  mul r2, r7, r2
  ldr lr, [sp, #104]
  rsb r3, r2, r3
  add r0, lr, r3
  ldr r1, [sp, #112]
  mov ip, r0, asr #8
  cmp ip, r1
  movcs lr, r8
  bcs .L21402
  b .L22216
.L21403:
  ldr r2, [sp, #112]
  cmp ip, r2
  bcc .L22182
.L21402:
  ldr r3, [sp, #64]
  add lr, lr, #1
  add r0, r0, r3
  cmp r4, lr
  mov ip, r0, asr #8
  add sl, sl, #2
  add r5, r5, #2
  bne .L21403
.L21367:
  ldr ip, [sp, #44]
  ldr lr, [sp, #56]
  add ip, ip, #1
  cmp ip, lr
  str ip, [sp, #44]
  beq .L22165
.L22197:
  ldr r1, [sp, #44]
  b .L21363
.L21379:
  mov r0, ip
  mov r1, r6
  mov r2, r7
  add r3, sp, #116
  bl  render_scanline_obj_normal_2D
  b .L21377
.L21384:
  ldr r3, [sp, #52]
  tst sl, #8192
  rsb r0, r0, r3
  ldr r4, [sp, #24]
  rsbne r3, r0, fp
  subne r0, r3, #1
  mov r2, sl, asl #19
  and r3, r4, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L21367
  .p2align 2
.L21464:
  .word .L21460
  .word .L21461
  .word .L21462
  .word .L21463
.L21386:
  ldr r6, .L22220+16
  mov r3, sl, lsr #4
  and r3, r3, #992
  add r3, r3, r6
  ldr r7, [sp, #112]
  ldr r4, [sp, #28]
  ldrh  ip, [r3, #30]
  add r2, r7, r7, lsr #31
  cmp r4, #0
  add r1, fp, fp, lsr #31
  str ip, [sp, #36]
  ldrh  sl, [r3, #6]
  mov ip, r2, asr #1
  ldrh  r8, [r3, #22]
  ldrh  r2, [r3, #14]
  ldr r3, [sp, #16]
  mov lr, r1, asr #1
  movne r1, r7
  moveq r4, r7
  moveq r6, lr
  moveq r7, ip
  movne r4, r1, asl #1
  movne r7, ip, asl #1
  movne r6, lr, asl #1
  cmp r9, r3
  bge .L21423
  rsb r1, r9, r3
  rsb r4, r1, r4
  cmp r4, #0
  ble .L21367
  rsb r7, r1, r7
  mov r9, r3
.L21423:
  ldr r1, [sp, #12]
  add r3, r9, r4
  cmp r3, r1
  blt .L21426
  rsb r4, r9, r1
  cmp r4, #0
  ble .L21367
.L21426:
  add r0, r0, r6
  ldr r6, [sp, #36]
  mov r2, r2, asl #16
  mov ip, ip, asl #8
  mov r3, sl, asl #16
  mov r1, r6, asl #16
  str ip, [sp, #92]
  mov r6, r2, asr #16
  mov ip, lr, asl #8
  ldr r2, [sp, #52]
  ldr lr, [sp, #8]
  mov r3, r3, asr #16
  cmp r8, #0
  str r3, [sp, #68]
  mov r1, r1, asr #16
  add sl, lr, r9, asl #1
  rsb r0, r0, r2
  bne .L21428
  mla r3, r0, r1, ip
  mov r1, r3, asr #8
  cmp r1, fp
  bcs .L21367
  ldr ip, [sp, #20]
  mov r2, r1, lsr #3
  mov r3, ip, asl #22
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r1, #7
  add r1, r1, r3, asl #3
  ldr r3, .L22220+40
  cmp r4, #0
  add r9, r3, r1, asl #2
  ble .L21367
  ldr r2, [sp, #68]
  mul r3, r0, r6
  mul r2, r7, r2
  ldr lr, [sp, #92]
  rsb r3, r2, r3
  ldr r1, [sp, #112]
  add r0, lr, r3
  mov ip, r0, asr #8
  cmp ip, r1
  movcs r1, r8
  bcs .L21434
  b .L22217
.L21435:
  ldr r2, [sp, #112]
  cmp ip, r2
  bcc .L22184
.L21434:
  ldr r3, [sp, #68]
  add r1, r1, #1
  add r0, r0, r3
  cmp r4, r1
  mov ip, r0, asr #8
  add sl, sl, #2
  add r5, r5, #2
  bne .L21435
  ldr ip, [sp, #44]
  ldr lr, [sp, #56]
  add ip, ip, #1
  cmp ip, lr
  str ip, [sp, #44]
  bne .L22197
.L22165:
  add sp, sp, #596
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L21437:
  ldr r6, [sp, #112]
  cmp ip, r6
  bcs .L21367
.L22184:
  mov r3, ip, asr #1
  and r6, r3, #3
  mov r3, ip, asr #3
  mov r3, r3, asl #5
  mov r2, ip, asr #1
  tst ip, #1
  and lr, r2, #3
  add ip, r3, r9
  add r2, r3, r9
  ldreqb  r3, [r2, lr]  @ zero_extendqisi2
  ldrneb  r3, [ip, r6]  @ zero_extendqisi2
  andeq r2, r3, #15
  movne r2, r3, lsr #4
  cmp r2, #0
  ldrneh  lr, [r5, #0]
  ldr r7, [sp, #68]
  add r1, r1, #1
  strneh  lr, [sl, #0]  @ movhi
  add r0, r0, r7
  cmp r4, r1
  mov ip, r0, asr #8
  add sl, sl, #2
  add r5, r5, #2
  bgt .L21437
  b .L21367
.L21428:
  ldr r2, [sp, #20]
  cmp r4, #0
  mov r3, r2, asl #22
  ldr r2, .L22220+40
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  str r3, [sp, #96]
  ble .L21367
  mov r3, r8, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #72]
  mul r2, r0, r1
  mul r3, r0, r6
  ldr r1, [sp, #72]
  ldr r0, [sp, #68]
  mul r1, r7, r1
  mul r0, r7, r0
  ldr r6, [sp, #92]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r7, r6, r3
  ldr r0, [sp, #112]
  add r6, ip, r2
  mov lr, r7, asr #8
  mov ip, r6, asr #8
  cmp lr, r0
  cmpcc ip, fp
  movcs r3, #0
  movcc r3, #1
  movcs r8, r3
  bcs .L21447
  b .L22218
.L21448:
  ldr r1, [sp, #112]
  cmp lr, r1
  cmpcc ip, fp
  bcc .L21449
.L21447:
  ldr r2, [sp, #68]
  ldr r3, [sp, #72]
  add r8, r8, #1
  add r7, r7, r2
  add r6, r6, r3
  cmp r4, r8
  mov lr, r7, asr #8
  mov ip, r6, asr #8
  add sl, sl, #2
  add r5, r5, #2
  bne .L21448
  b .L21367
.L21405:
  ldr r6, [sp, #112]
  cmp ip, r6
  bcs .L21367
.L22182:
  mov r3, ip, asr #3
  and r1, ip, #7
  add r3, r9, r3, asl #6
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  ldr r7, [sp, #64]
  cmp r2, #0
  ldrneh  r1, [r5, #0]
  add lr, lr, #1
  strneh  r1, [sl, #0]  @ movhi
  add r0, r0, r7
  cmp r4, lr
  mov ip, r0, asr #8
  add sl, sl, #2
  add r5, r5, #2
  bgt .L21405
  b .L21367
.L21396:
  ldr r2, [sp, #20]
  cmp r4, #0
  mov r3, r2, asl #22
  ldr r2, .L22220+40
  mov r3, r3, lsr #22
  add r3, r2, r3, asl #5
  str r3, [sp, #100]
  ble .L21367
  mov r3, r8, asl #16
  mul r2, r0, r1
  mov r9, r3, asr #16
  mul r3, r0, r6
  ldr r0, [sp, #64]
  mul r1, r9, r7
  mul r0, r7, r0
  ldr r6, [sp, #104]
  rsb r3, r0, r3
  rsb r2, r1, r2
  add r7, r6, r3
  ldr r0, [sp, #112]
  add r6, ip, r2
  mov lr, r7, asr #8
  mov ip, r6, asr #8
  cmp lr, r0
  cmpcc ip, fp
  movcs r3, #0
  movcc r3, #1
  movcs r8, r3
  bcs .L21412
  b .L22219
.L21413:
  ldr r1, [sp, #112]
  cmp lr, r1
  cmpcc ip, fp
  bcc .L21414
.L21412:
  ldr r2, [sp, #64]
  add r8, r8, #1
  add r7, r7, r2
  add r6, r6, r9
  cmp r4, r8
  mov lr, r7, asr #8
  mov ip, r6, asr #8
  add sl, sl, #2
  add r5, r5, #2
  bne .L21413
  b .L21367
.L21460:
  ldr r6, [sp, #20]
  mov r2, r0, lsr #3
  mov r3, r6, asl #22
  mov r3, r3, lsr #22
  add r3, r3, r2, asl #5
  and r1, r0, #7
  ldr r7, [sp, #16]
  add r1, r1, r3, asl #3
  ldr r3, .L22220+40
  cmp r9, r7
  add r0, r3, r1, asl #2
  bge .L21465
  ldr r1, [sp, #112]
  rsb ip, r9, r7
  rsb lr, ip, r1
  cmp lr, #0
  ble .L21367
  ldr r2, [sp, #12]
  add r3, r9, r1
  cmp r2, r3
  bhi .L21468
  mov r3, ip, lsr #3
  mov r1, r3, asl #5
  ands  r3, ip, #7
  add r6, r0, r1
  bne .L21470
  ldr r8, [sp, #108]
  ldr r7, [sp, #88]
.L21472:
  movs  lr, r8, lsr #3
  beq .L21489
  mov r1, r5
  mov r2, r7
  mov r0, r6
  mov ip, #0
.L21491:
  ldr r3, [r0, #0]
  cmp r3, #0
  beq .L21492
  tst r3, #15
  ldrneh  r4, [r1, #0]
  strneh  r4, [r2, #0]  @ movhi
  tst r3, #240
  ldrneh  r4, [r1, #2]
  strneh  r4, [r2, #2]  @ movhi
  tst r3, #3840
  ldrneh  r4, [r1, #4]
  strneh  r4, [r2, #4]  @ movhi
  tst r3, #61440
  ldrneh  r4, [r1, #6]
  strneh  r4, [r2, #6]  @ movhi
  tst r3, #983040
  ldrneh  r4, [r1, #8]
  strneh  r4, [r2, #8]  @ movhi
  tst r3, #15728640
  ldrneh  r4, [r1, #10]
  strneh  r4, [r2, #10] @ movhi
  tst r3, #251658240
  ldrneh  r4, [r1, #12]
  strneh  r4, [r2, #12] @ movhi
  movs  r3, r3, lsr #28
  ldrneh  r3, [r1, #14]
  strneh  r3, [r2, #14] @ movhi
.L21492:
  add ip, ip, #1
  cmp ip, lr
  add r0, r0, #32
  add r2, r2, #16
  add r1, r1, #16
  bne .L21491
  mov r3, lr, asl #4
  add r7, r7, r3
  add r6, r6, lr, asl #5
  add r5, r5, r3
.L21489:
  ands  r0, r8, #7
  beq .L21367
  ldr r3, [r6, #0]
  mov r1, #0
.L21511:
  tst r3, #15
  mov r2, r1, asl #1
  ldrneh  r4, [r2, r5]
  add r1, r1, #1
  strneh  r4, [r2, r7]  @ movhi
  cmp r1, r0
  mov r3, r3, lsr #4
  bne .L21511
  b .L21367
.L21461:
  ldr ip, [sp, #20]
  ldr lr, [sp, #112]
  mov r3, ip, asl #22
  mov r1, r0, lsr #3
  subs  r2, lr, #8
  mov r3, r3, lsr #22
  submi r2, lr, #1
  add r3, r3, r1, asl #5
  add r3, r3, r2, asr #3
  and r1, r0, #7
  ldr r0, [sp, #16]
  add r1, r1, r3, asl #3
  ldr r3, .L22220+40
  cmp r9, r0
  add r0, r3, r1, asl #2
  bge .L21595
  ldr r1, [sp, #16]
  rsb ip, r9, r1
  rsb r1, ip, lr
  cmp r1, #0
  ble .L21367
  ldr r2, [sp, #12]
  add r3, r9, lr
  cmp r2, r3
  bhi .L21598
  mov r3, ip, lsr #3
  ands  r6, ip, #7
  sub r0, r0, r3, asl #5
  bne .L21600
  ldr r8, [sp, #108]
  ldr r1, [sp, #88]
.L21602:
  movs  r3, r8, lsr #3
  beq .L21619
  mov lr, r5
  mov ip, r1
  mov r6, r0
  mov r7, #0
.L21621:
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L21622
  tst r2, #15
  ldrneh  r4, [lr, #14]
  strneh  r4, [ip, #14] @ movhi
  tst r2, #240
  ldrneh  r4, [lr, #12]
  strneh  r4, [ip, #12] @ movhi
  tst r2, #3840
  ldrneh  r4, [lr, #10]
  strneh  r4, [ip, #10] @ movhi
  tst r2, #61440
  ldrneh  r4, [lr, #8]
  strneh  r4, [ip, #8]  @ movhi
  tst r2, #983040
  ldrneh  r4, [lr, #6]
  strneh  r4, [ip, #6]  @ movhi
  tst r2, #15728640
  ldrneh  r4, [lr, #4]
  strneh  r4, [ip, #4]  @ movhi
  tst r2, #251658240
  ldrneh  r4, [lr, #2]
  strneh  r4, [ip, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrneh  r2, [lr, #0]
  strneh  r2, [ip, #0]  @ movhi
.L21622:
  add r7, r7, #1
  cmp r7, r3
  sub r6, r6, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L21621
  rsb r2, r3, r3, asl #27
  mov r3, r3, asl #4
  add r1, r1, r3
  add r0, r0, r2, asl #5
  add r5, r5, r3
.L21619:
  ands  ip, r8, #7
  beq .L21367
  ldr r0, [r0, #0]
  mov r2, #0
.L21641:
  movs  r3, r0, lsr #28
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r5]
  add r2, r2, #1
  strneh  r4, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, asl #4
  bne .L21641
  b .L21367
.L21463:
  ldr lr, [sp, #112]
  ldr r3, [sp, #20]
  subs  r2, lr, #8
  submi r2, lr, #1
  mov r1, r3, asl #22
  mov r2, r2, asr #3
  mov r3, r0, lsr #3
  add r2, r2, r3, asl #4
  mov r1, r1, lsr #22
  and r3, r0, #7
  add r1, r1, r2, asl #1
  add r3, r3, r1, asl #2
  ldr r4, [sp, #16]
  mov r0, r3, asl #3
  ldr r3, .L22220+40
  cmp r9, r4
  add r8, r0, r3
  bge .L21945
  rsb r0, r9, r4
  rsb lr, r0, lr
  cmp lr, #0
  ble .L21367
  ldr r6, [sp, #112]
  ldr r7, [sp, #12]
  add r3, r9, r6
  cmp r7, r3
  bhi .L21948
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub sl, r8, r3, asl #6
  bne .L21950
  ldr r8, [sp, #108]
  ldr r7, [sp, #88]
.L21952:
  movs  r6, r8, lsr #3
  beq .L22010
  mov r0, r5
  mov r1, r7
  mov ip, sl
  mov lr, #0
.L22012:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L22013
  tst r2, #255
  ldrneh  r3, [r0, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r0, #4]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #2]
  strneh  r3, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r4, [r0, #0]
  strneh  r4, [r1, #0]  @ movhi
.L22013:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L22022
  tst r2, #255
  ldrneh  r3, [r0, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r0, #12]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #12] @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #10]
  strneh  r3, [r1, #10] @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r4, [r0, #8]
  strneh  r4, [r1, #8]  @ movhi
.L22022:
  add lr, lr, #1
  cmp lr, r6
  sub ip, ip, #64
  add r1, r1, #16
  add r0, r0, #16
  bne .L22012
  mov r3, r6, asl #4
  rsb r2, r6, r6, asl #26
  add r7, r7, r3
  add sl, sl, r2, asl #6
  add r5, r5, r3
.L22010:
  ands  ip, r8, #7
  beq .L21367
  cmp ip, #3
  ldrls r2, [sl, #4]
  bls .L22045
  ldr r2, [sl, #4]
  cmp r2, #0
  beq .L22035
  tst r2, #255
  ldrneh  r6, [r5, #6]
  mov r3, r2, lsr #8
  strneh  r6, [r7, #6]  @ movhi
  tst r3, #255
  ldrneh  lr, [r5, #4]
  mov r3, r2, lsr #16
  strneh  lr, [r7, #4]  @ movhi
  tst r3, #255
  ldrneh  r0, [r5, #2]
  strneh  r0, [r7, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r1, [r5, #0]
  strneh  r1, [r7, #0]  @ movhi
.L22035:
  subs  ip, ip, #4
  ldr r2, [sl, #0]
  addne r7, r7, #8
  addne r5, r5, #8
  beq .L21367
.L22045:
  mov r1, #0
.L22046:
  movs  r3, r2, lsr #24
  mov r0, r1, asl #1
  ldrneh  r4, [r0, r5]
  add r1, r1, #1
  strneh  r4, [r0, r7]  @ movhi
  cmp ip, r1
  mov r2, r2, asl #8
  bhi .L22046
  b .L21367
.L21462:
  ldr ip, [sp, #20]
  mov r1, r0, lsr #3
  mov r2, ip, asl #22
  mov r2, r2, lsr #22
  add r2, r2, r1, asl #5
  and r3, r0, #7
  add r3, r3, r2, asl #2
  ldr lr, [sp, #16]
  mov r0, r3, asl #3
  ldr r3, .L22220+40
  cmp r9, lr
  add r2, r0, r3
  bge .L21725
  ldr r1, [sp, #112]
  rsb r0, r9, lr
  rsb lr, r0, r1
  cmp lr, #0
  ble .L21367
  ldr r4, [sp, #12]
  add r3, r9, r1
  cmp r4, r3
  bhi .L21728
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  add sl, r2, r3, asl #6
  bne .L21730
  ldr r8, [sp, #108]
  ldr r7, [sp, #88]
.L21732:
  movs  r6, r8, lsr #3
  beq .L21790
  mov r0, r5
  mov r1, r7
  mov ip, sl
  mov lr, #0
.L21792:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L21793
  tst r2, #255
  ldrneh  r3, [r0, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r0, #2]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #4]
  strneh  r3, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r4, [r0, #6]
  strneh  r4, [r1, #6]  @ movhi
.L21793:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L21802
  tst r2, #255
  ldrneh  r3, [r0, #8]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r0, #10]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #10] @ movhi
  tst r3, #255
  ldrneh  r3, [r0, #12]
  strneh  r3, [r1, #12] @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r4, [r0, #14]
  strneh  r4, [r1, #14] @ movhi
.L21802:
  add lr, lr, #1
  cmp lr, r6
  add ip, ip, #64
  add r1, r1, #16
  add r0, r0, #16
  bne .L21792
  mov r3, r6, asl #4
  add r7, r7, r3
  add sl, sl, r6, asl #6
  add r5, r5, r3
.L21790:
  ands  r0, r8, #7
  beq .L21367
  cmp r0, #3
  ldrls r3, [sl, #0]
  bls .L21825
  ldr r2, [sl, #0]
  cmp r2, #0
  beq .L21815
  tst r2, #255
  ldrneh  r6, [r5, #0]
  mov r3, r2, lsr #8
  strneh  r6, [r7, #0]  @ movhi
  tst r3, #255
  ldrneh  ip, [r5, #2]
  mov r3, r2, lsr #16
  strneh  ip, [r7, #2]  @ movhi
  tst r3, #255
  ldrneh  lr, [r5, #4]
  strneh  lr, [r7, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r1, [r5, #6]
  strneh  r1, [r7, #6]  @ movhi
.L21815:
  subs  r0, r0, #4
  ldr r3, [sl, #4]
  addne r7, r7, #8
  addne r5, r5, #8
  beq .L21367
.L21825:
  mov r2, #0
.L21826:
  tst r3, #255
  mov r1, r2, asl #1
  ldrneh  r4, [r1, r5]
  add r2, r2, #1
  strneh  r4, [r1, r7]  @ movhi
  cmp r0, r2
  mov r3, r3, lsr #8
  bhi .L21826
  b .L21367
.L21725:
  ldr ip, [sp, #112]
  ldr lr, [sp, #12]
  add r3, r9, ip
  cmp lr, r3
  bls .L22200
  cmp ip, #0
  add r3, ip, #7
  movge r3, ip
  movs  r6, r3, asr #3
  beq .L21367
  ldr r7, [sp, #8]
  ldr r3, .L22220+48
  add r1, r7, r9, asl #1
  add r0, r0, r3
  mov lr, #0
  b .L21925
.L22201:
  add r2, r2, #64
  add r1, r1, #16
  add r5, r5, #16
.L21925:
  ldr ip, [r2, #0]
  cmp ip, #0
  beq .L21926
  tst ip, #255
  ldrneh  r3, [r5, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #2]
  mov r3, ip, lsr #16
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrneh  r7, [r5, #4]
  strneh  r7, [r1, #4]  @ movhi
  movs  ip, ip, lsr #24
  ldrneh  ip, [r5, #6]
  strneh  ip, [r1, #6]  @ movhi
.L21926:
  ldr ip, [r0, #-60]
  cmp ip, #0
  beq .L21935
  tst ip, #255
  ldrneh  r3, [r5, #8]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #10]
  mov r3, ip, lsr #16
  strneh  r4, [r1, #10] @ movhi
  tst r3, #255
  ldrneh  r7, [r5, #12]
  strneh  r7, [r1, #12] @ movhi
  movs  ip, ip, lsr #24
  ldrneh  ip, [r5, #14]
  strneh  ip, [r1, #14] @ movhi
.L21935:
  add lr, lr, #1
  cmp r6, lr
  add r0, r0, #64
  bne .L22201
  b .L21367
.L21595:
  ldr ip, [sp, #12]
  add r3, r9, lr
  cmp ip, r3
  mov r7, lr
  bls .L22202
  cmp lr, #0
  add r3, lr, #7
  movge r3, lr
  movs  r3, r3, asr #3
  mov r6, lr
  beq .L21367
  ldr r7, [sp, #8]
  mov ip, #0
  add r1, r7, r9, asl #1
  b .L21706
.L22221:
  .align  2
.L22220:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word bitmap_mode_renderers-12
  .word oam_ram
  .word obj_width_table
  .word palette_ram_converted
  .word layer_count
  .word layer_order
  .word obj_height_table
  .word vram+65536
  .word vram+65472
  .word vram+65600
.L22203:
  sub r0, r0, #32
  add r1, r1, #16
  add r5, r5, #16
.L21706:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L21707
  tst r2, #15
  ldrneh  lr, [r5, #14]
  strneh  lr, [r1, #14] @ movhi
  tst r2, #240
  ldrneh  r4, [r5, #12]
  strneh  r4, [r1, #12] @ movhi
  tst r2, #3840
  ldrneh  r6, [r5, #10]
  strneh  r6, [r1, #10] @ movhi
  tst r2, #61440
  ldrneh  r7, [r5, #8]
  strneh  r7, [r1, #8]  @ movhi
  tst r2, #983040
  ldrneh  lr, [r5, #6]
  strneh  lr, [r1, #6]  @ movhi
  tst r2, #15728640
  ldrneh  r4, [r5, #4]
  strneh  r4, [r1, #4]  @ movhi
  tst r2, #251658240
  ldrneh  r6, [r5, #2]
  strneh  r6, [r1, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrneh  r7, [r5, #0]
  strneh  r7, [r1, #0]  @ movhi
.L21707:
  add ip, ip, #1
  cmp r3, ip
  bne .L22203
  b .L21367
.L21465:
  ldr r1, [sp, #112]
  ldr r2, [sp, #12]
  add r3, r9, r1
  cmp r2, r3
  bls .L22204
  cmp r1, #0
  add r3, r1, #7
  movge r3, r1
  movs  r3, r3, asr #3
  mov r6, r1
  beq .L21367
  ldr r7, [sp, #8]
  mov r2, #0
  add r1, r7, r9, asl #1
  b .L21576
.L22205:
  add r0, r0, #32
  add r1, r1, #16
  add r5, r5, #16
.L21576:
  ldr ip, [r0, #0]
  cmp ip, #0
  beq .L21577
  tst ip, #15
  ldrneh  lr, [r5, #0]
  strneh  lr, [r1, #0]  @ movhi
  tst ip, #240
  ldrneh  r4, [r5, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst ip, #3840
  ldrneh  r6, [r5, #4]
  strneh  r6, [r1, #4]  @ movhi
  tst ip, #61440
  ldrneh  r7, [r5, #6]
  strneh  r7, [r1, #6]  @ movhi
  tst ip, #983040
  ldrneh  lr, [r5, #8]
  strneh  lr, [r1, #8]  @ movhi
  tst ip, #15728640
  ldrneh  r4, [r5, #10]
  strneh  r4, [r1, #10] @ movhi
  tst ip, #251658240
  ldrneh  r6, [r5, #12]
  strneh  r6, [r1, #12] @ movhi
  movs  ip, ip, lsr #28
  ldrneh  r7, [r5, #14]
  strneh  r7, [r1, #14] @ movhi
.L21577:
  add r2, r2, #1
  cmp r3, r2
  bne .L22205
  b .L21367
.L21945:
  add r3, r9, lr
  mov ip, lr
  ldr lr, [sp, #12]
  cmp lr, r3
  bls .L22206
  cmp ip, #0
  add r3, ip, #7
  movge r3, ip
  movs  lr, r3, asr #3
  mov r7, ip
  beq .L21367
  ldr ip, [sp, #8]
  ldr r3, .L22220+44
  add r1, ip, r9, asl #1
  add r0, r0, r3
  mov r2, #0
  b .L22145
.L22207:
  sub r8, r8, #64
  add r1, r1, #16
  add r5, r5, #16
.L22145:
  ldr ip, [r0, #68]
  cmp ip, #0
  beq .L22146
  tst ip, #255
  ldrneh  r3, [r5, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #4]
  mov r3, ip, lsr #16
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrneh  r6, [r5, #2]
  strneh  r6, [r1, #2]  @ movhi
  movs  ip, ip, lsr #24
  ldrneh  r7, [r5, #0]
  strneh  r7, [r1, #0]  @ movhi
.L22146:
  ldr ip, [r8, #0]
  cmp ip, #0
  beq .L22155
  tst ip, #255
  ldrneh  r3, [r5, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #12]
  mov r3, ip, lsr #16
  strneh  r4, [r1, #12] @ movhi
  tst r3, #255
  ldrneh  r6, [r5, #10]
  strneh  r6, [r1, #10] @ movhi
  movs  ip, ip, lsr #24
  ldrneh  r7, [r5, #8]
  strneh  r7, [r1, #8]  @ movhi
.L22155:
  add r2, r2, #1
  cmp lr, r2
  sub r0, r0, #64
  bne .L22207
  b .L21367
.L22219:
  mov r8, #0
.L21414:
  ldr r0, [sp, #112]
  cmp ip, fp
  cmpcc lr, r0
  bcc .L22183
  b .L21367
.L21415:
  ldr r3, [sp, #112]
  cmp ip, fp
  cmpcc lr, r3
  bcs .L21367
.L22183:
  and r3, ip, #7
  mov r2, lr, asr #3
  mov r3, r3, asl #3
  mov r1, ip, asr #3
  add r3, r3, r2, asl #6
  ldr r0, [sp, #64]
  add r3, r3, r1, asl #10
  ldr r1, [sp, #100]
  add r7, r7, r0
  add r3, r3, r1
  and r0, lr, #7
  ldrb  r2, [r3, r0]  @ zero_extendqisi2
  add r8, r8, #1
  cmp r2, #0
  ldrneh  r2, [r5, #0]
  add r6, r6, r9
  strneh  r2, [sl, #0]  @ movhi
  cmp r4, r8
  mov ip, r6, asr #8
  mov lr, r7, asr #8
  add sl, sl, #2
  add r5, r5, #2
  bgt .L21415
  b .L21367
.L22218:
  ldr r1, [sp, #112]
  mov r8, #0
.L21449:
  cmp ip, fp
  cmpcc lr, r1
  bcc .L22185
  b .L21367
.L21450:
  ldr r0, [sp, #112]
  cmp ip, fp
  cmpcc lr, r0
  bcs .L21367
.L22185:
  mov r3, lr, asr #1
  ldr r1, [sp, #96]
  and r3, r3, #3
  and r0, ip, #7
  str r3, [sp, #4]
  ldr r3, [sp, #96]
  add r0, r1, r0, asl #2
  and r1, ip, #7
  mov r2, lr, asr #1
  add r1, r3, r1, asl #2
  mov r3, ip, asr #3
  and r9, r2, #3
  mov r3, r3, asl #10
  mov r2, lr, asr #3
  tst lr, #1
  add r3, r3, r2, asl #5
  add r2, r0, r3
  movne ip, r9
  add r0, r1, r3
  ldreqb  r3, [r0, r9]  @ zero_extendqisi2
  ldrneb  r3, [r2, ip]  @ zero_extendqisi2
  andeq r0, r3, #15
  movne r0, r3, lsr #4
  cmp r0, #0
  ldrneh  r2, [r5, #0]
  ldr lr, [sp, #68]
  ldr r1, [sp, #72]
  add r8, r8, #1
  strneh  r2, [sl, #0]  @ movhi
  add r7, r7, lr
  add r6, r6, r1
  cmp r4, r8
  mov lr, r7, asr #8
  mov ip, r6, asr #8
  add sl, sl, #2
  add r5, r5, #2
  bgt .L21450
  b .L21367
.L22206:
  rsb fp, r9, lr
  cmp fp, #0
  ble .L21367
  ldr r2, [sp, #8]
  movs  sl, fp, lsr #3
  add r1, r2, r9, asl #1
  beq .L22104
  ldr r3, .L22220+44
  mov r6, r5
  add r0, r0, r3
  mov lr, r1
  mov r7, r8
  mov r2, #0
.L22106:
  ldr ip, [r0, #68]
  cmp ip, #0
  beq .L22107
  tst ip, #255
  ldrneh  r3, [r6, #6]
  strneh  r3, [lr, #6]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r6, #4]
  mov r3, ip, lsr #16
  strneh  r4, [lr, #4]  @ movhi
  tst r3, #255
  ldrneh  r3, [r6, #2]
  strneh  r3, [lr, #2]  @ movhi
  movs  ip, ip, lsr #24
  ldrneh  r4, [r6, #0]
  strneh  r4, [lr, #0]  @ movhi
.L22107:
  ldr ip, [r7, #0]
  cmp ip, #0
  beq .L22116
  tst ip, #255
  ldrneh  r3, [r6, #14]
  strneh  r3, [lr, #14] @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r6, #12]
  mov r3, ip, lsr #16
  strneh  r4, [lr, #12] @ movhi
  tst r3, #255
  ldrneh  r3, [r6, #10]
  strneh  r3, [lr, #10] @ movhi
  movs  ip, ip, lsr #24
  ldrneh  r4, [r6, #8]
  strneh  r4, [lr, #8]  @ movhi
.L22116:
  add r2, r2, #1
  cmp sl, r2
  sub r7, r7, #64
  add lr, lr, #16
  add r6, r6, #16
  sub r0, r0, #64
  bne .L22106
  mov r3, sl, asl #4
  rsb r2, sl, sl, asl #26
  add r1, r1, r3
  add r8, r8, r2, asl #6
  add r5, r5, r3
.L22104:
  ands  ip, fp, #7
  beq .L21367
  cmp ip, #3
  ldrls r2, [r8, #4]
  bls .L22139
  ldr r2, [r8, #4]
  cmp r2, #0
  beq .L22129
  tst r2, #255
  ldrneh  r6, [r5, #6]
  mov r3, r2, lsr #8
  strneh  r6, [r1, #6]  @ movhi
  tst r3, #255
  ldrneh  r7, [r5, #4]
  mov r3, r2, lsr #16
  strneh  r7, [r1, #4]  @ movhi
  tst r3, #255
  ldrneh  lr, [r5, #2]
  strneh  lr, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r0, [r5, #0]
  strneh  r0, [r1, #0]  @ movhi
.L22129:
  subs  ip, ip, #4
  ldr r2, [r8, #0]
  addne r1, r1, #8
  addne r5, r5, #8
  beq .L21367
.L22139:
  mov r3, #0
.L22140:
  movs  r4, r2, lsr #24
  mov r0, r3, asl #1
  ldrneh  r6, [r0, r5]
  add r3, r3, #1
  strneh  r6, [r0, r1]  @ movhi
  cmp ip, r3
  mov r2, r2, asl #8
  bhi .L22140
  b .L21367
.L22202:
  rsb r8, r9, ip
  cmp r8, #0
  ble .L21367
  ldr lr, [sp, #8]
  movs  r3, r8, lsr #3
  add r1, lr, r9, asl #1
  beq .L21679
  mov lr, r5
  mov ip, r1
  mov r6, r0
  mov r7, #0
.L21681:
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L21682
  tst r2, #15
  ldrneh  r4, [lr, #14]
  strneh  r4, [ip, #14] @ movhi
  tst r2, #240
  ldrneh  r4, [lr, #12]
  strneh  r4, [ip, #12] @ movhi
  tst r2, #3840
  ldrneh  r4, [lr, #10]
  strneh  r4, [ip, #10] @ movhi
  tst r2, #61440
  ldrneh  r4, [lr, #8]
  strneh  r4, [ip, #8]  @ movhi
  tst r2, #983040
  ldrneh  r4, [lr, #6]
  strneh  r4, [ip, #6]  @ movhi
  tst r2, #15728640
  ldrneh  r4, [lr, #4]
  strneh  r4, [ip, #4]  @ movhi
  tst r2, #251658240
  ldrneh  r4, [lr, #2]
  strneh  r4, [ip, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrneh  r2, [lr, #0]
  strneh  r2, [ip, #0]  @ movhi
.L21682:
  add r7, r7, #1
  cmp r7, r3
  sub r6, r6, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L21681
  rsb r2, r3, r3, asl #27
  mov r3, r3, asl #4
  add r1, r1, r3
  add r0, r0, r2, asl #5
  add r5, r5, r3
.L21679:
  ands  ip, r8, #7
  beq .L21367
  ldr r0, [r0, #0]
  mov r2, #0
.L21701:
  movs  r3, r0, lsr #28
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r5]
  add r2, r2, #1
  strneh  r4, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, asl #4
  bne .L21701
  b .L21367
.L22204:
  rsb r8, r9, r2
  cmp r8, #0
  ble .L21367
  ldr r3, [sp, #8]
  movs  r7, r8, lsr #3
  add r1, r3, r9, asl #1
  beq .L21549
  mov lr, r5
  mov ip, r1
  mov r6, r0
  mov r2, #0
.L21551:
  ldr r3, [r6, #0]
  cmp r3, #0
  beq .L21552
  tst r3, #15
  ldrneh  r4, [lr, #0]
  strneh  r4, [ip, #0]  @ movhi
  tst r3, #240
  ldrneh  r4, [lr, #2]
  strneh  r4, [ip, #2]  @ movhi
  tst r3, #3840
  ldrneh  r4, [lr, #4]
  strneh  r4, [ip, #4]  @ movhi
  tst r3, #61440
  ldrneh  r4, [lr, #6]
  strneh  r4, [ip, #6]  @ movhi
  tst r3, #983040
  ldrneh  r4, [lr, #8]
  strneh  r4, [ip, #8]  @ movhi
  tst r3, #15728640
  ldrneh  r4, [lr, #10]
  strneh  r4, [ip, #10] @ movhi
  tst r3, #251658240
  ldrneh  r4, [lr, #12]
  strneh  r4, [ip, #12] @ movhi
  movs  r3, r3, lsr #28
  ldrneh  r3, [lr, #14]
  strneh  r3, [ip, #14] @ movhi
.L21552:
  add r2, r2, #1
  cmp r2, r7
  add r6, r6, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L21551
  mov r3, r7, asl #4
  add r1, r1, r3
  add r0, r0, r7, asl #5
  add r5, r5, r3
.L21549:
  ands  ip, r8, #7
  beq .L21367
  ldr r0, [r0, #0]
  mov r2, #0
.L21571:
  tst r0, #15
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r5]
  add r2, r2, #1
  strneh  r4, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, lsr #4
  bne .L21571
  b .L21367
.L22200:
  rsb fp, r9, lr
  cmp fp, #0
  ble .L21367
  ldr r3, [sp, #8]
  movs  sl, fp, lsr #3
  add r1, r3, r9, asl #1
  beq .L21884
  ldr r3, .L22220+48
  mov r6, r5
  add r0, r0, r3
  mov lr, r1
  mov r7, r2
  mov r8, #0
.L21886:
  ldr ip, [r7, #0]
  cmp ip, #0
  beq .L21887
  tst ip, #255
  ldrneh  r4, [r6, #0]
  mov r3, ip, lsr #8
  strneh  r4, [lr, #0]  @ movhi
  tst r3, #255
  ldrneh  r3, [r6, #2]
  strneh  r3, [lr, #2]  @ movhi
  mov r3, ip, lsr #16
  tst r3, #255
  ldrneh  r4, [r6, #4]
  strneh  r4, [lr, #4]  @ movhi
  movs  ip, ip, lsr #24
  ldrneh  ip, [r6, #6]
  strneh  ip, [lr, #6]  @ movhi
.L21887:
  ldr ip, [r0, #-60]
  cmp ip, #0
  beq .L21896
  tst ip, #255
  ldrneh  r3, [r6, #8]
  strneh  r3, [lr, #8]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r6, #10]
  mov r3, ip, lsr #16
  strneh  r4, [lr, #10] @ movhi
  tst r3, #255
  ldrneh  r3, [r6, #12]
  strneh  r3, [lr, #12] @ movhi
  movs  ip, ip, lsr #24
  ldrneh  r4, [r6, #14]
  strneh  r4, [lr, #14] @ movhi
.L21896:
  add r8, r8, #1
  cmp r8, sl
  add r7, r7, #64
  add lr, lr, #16
  add r6, r6, #16
  add r0, r0, #64
  bne .L21886
  mov r3, sl, asl #4
  add r1, r1, r3
  add r2, r2, sl, asl #6
  add r5, r5, r3
.L21884:
  ands  ip, fp, #7
  beq .L21367
  cmp ip, #3
  ldrls r3, [r2, #0]
  bls .L21919
  ldr r0, [r2, #0]
  cmp r0, #0
  beq .L21909
  tst r0, #255
  ldrneh  r6, [r5, #0]
  mov r3, r0, lsr #8
  strneh  r6, [r1, #0]  @ movhi
  tst r3, #255
  ldrneh  r7, [r5, #2]
  mov r3, r0, lsr #16
  strneh  r7, [r1, #2]  @ movhi
  tst r3, #255
  ldrneh  lr, [r5, #4]
  strneh  lr, [r1, #4]  @ movhi
  movs  r0, r0, lsr #24
  ldrneh  r0, [r5, #6]
  strneh  r0, [r1, #6]  @ movhi
.L21909:
  subs  ip, ip, #4
  ldr r3, [r2, #4]
  addne r1, r1, #8
  addne r5, r5, #8
  beq .L21367
.L21919:
  mov r2, #0
.L21920:
  tst r3, #255
  mov r0, r2, asl #1
  ldrneh  r4, [r0, r5]
  add r2, r2, #1
  strneh  r4, [r0, r1]  @ movhi
  cmp ip, r2
  mov r3, r3, lsr #8
  bhi .L21920
  b .L21367
.L21468:
  mov r3, ip, lsr #3
  mov r1, r3, asl #5
  ands  r3, ip, #7
  ldreq r3, [sp, #88]
  add ip, r0, r1
  bne .L22208
.L21517:
  movs  r0, lr, lsr #3
  beq .L21367
  mov r1, #0
  b .L21527
.L22209:
  add ip, ip, #32
  add r3, r3, #16
  add r5, r5, #16
.L21527:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L21528
  tst r2, #15
  ldrneh  r4, [r5, #0]
  strneh  r4, [r3, #0]  @ movhi
  tst r2, #240
  ldrneh  r6, [r5, #2]
  strneh  r6, [r3, #2]  @ movhi
  tst r2, #3840
  ldrneh  r7, [r5, #4]
  strneh  r7, [r3, #4]  @ movhi
  tst r2, #61440
  ldrneh  lr, [r5, #6]
  strneh  lr, [r3, #6]  @ movhi
  tst r2, #983040
  ldrneh  r4, [r5, #8]
  strneh  r4, [r3, #8]  @ movhi
  tst r2, #15728640
  ldrneh  r6, [r5, #10]
  strneh  r6, [r3, #10] @ movhi
  tst r2, #251658240
  ldrneh  r7, [r5, #12]
  strneh  r7, [r3, #12] @ movhi
  movs  r2, r2, lsr #28
  ldrneh  lr, [r5, #14]
  strneh  lr, [r3, #14] @ movhi
.L21528:
  add r1, r1, #1
  cmp r1, r0
  bne .L22209
  b .L21367
.L21728:
  ands  r1, r0, #7
  mov r3, r0, lsr #3
  add r0, r2, r3, asl #6
  ldreq r1, [sp, #88]
  bne .L22210
.L21832:
  movs  lr, lr, lsr #3
  beq .L21367
  mov ip, #0
  b .L21861
.L22211:
  add r0, r0, #64
  add r1, r1, #16
  add r5, r5, #16
.L21861:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L21862
  tst r2, #255
  ldrneh  r3, [r5, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #2]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrneh  r6, [r5, #4]
  strneh  r6, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r7, [r5, #6]
  strneh  r7, [r1, #6]  @ movhi
.L21862:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L21871
  tst r2, #255
  ldrneh  r3, [r5, #8]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #10]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #10] @ movhi
  tst r3, #255
  ldrneh  r6, [r5, #12]
  strneh  r6, [r1, #12] @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r7, [r5, #14]
  strneh  r7, [r1, #14] @ movhi
.L21871:
  add ip, ip, #1
  cmp ip, lr
  bne .L22211
  b .L21367
.L21948:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  sub r0, r8, r3, asl #6
  ldreq r1, [sp, #88]
  bne .L22212
.L22052:
  movs  lr, lr, lsr #3
  beq .L21367
  mov ip, #0
  b .L22081
.L22213:
  sub r0, r0, #64
  add r1, r1, #16
  add r5, r5, #16
.L22081:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L22082
  tst r2, #255
  ldrneh  r3, [r5, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #4]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrneh  r6, [r5, #2]
  strneh  r6, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r7, [r5, #0]
  strneh  r7, [r1, #0]  @ movhi
.L22082:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L22091
  tst r2, #255
  ldrneh  r3, [r5, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #12]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #12] @ movhi
  tst r3, #255
  ldrneh  r6, [r5, #10]
  strneh  r6, [r1, #10] @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r7, [r5, #8]
  strneh  r7, [r1, #8]  @ movhi
.L22091:
  add ip, ip, #1
  cmp ip, lr
  bne .L22213
  b .L21367
.L21598:
  mov r3, ip, lsr #3
  ands  r2, ip, #7
  sub r0, r0, r3, asl #5
  ldreq r3, [sp, #88]
  bne .L22214
.L21647:
  movs  r1, r1, lsr #3
  beq .L21367
  mov r2, #0
  b .L21657
.L22215:
  sub r0, r0, #32
  add r3, r3, #16
  add r5, r5, #16
.L21657:
  ldr ip, [r0, #0]
  cmp ip, #0
  beq .L21658
  tst ip, #15
  ldrneh  r7, [r5, #14]
  strneh  r7, [r3, #14] @ movhi
  tst ip, #240
  ldrneh  lr, [r5, #12]
  strneh  lr, [r3, #12] @ movhi
  tst ip, #3840
  ldrneh  r4, [r5, #10]
  strneh  r4, [r3, #10] @ movhi
  tst ip, #61440
  ldrneh  r6, [r5, #8]
  strneh  r6, [r3, #8]  @ movhi
  tst ip, #983040
  ldrneh  r7, [r5, #6]
  strneh  r7, [r3, #6]  @ movhi
  tst ip, #15728640
  ldrneh  lr, [r5, #4]
  strneh  lr, [r3, #4]  @ movhi
  tst ip, #251658240
  ldrneh  r4, [r5, #2]
  strneh  r4, [r3, #2]  @ movhi
  movs  ip, ip, lsr #28
  ldrneh  r6, [r5, #0]
  strneh  r6, [r3, #0]  @ movhi
.L21658:
  add r2, r2, #1
  cmp r2, r1
  bne .L22215
  b .L21367
.L22214:
  rsbs  r6, r2, #8
  ldr ip, [r0, #0]
  ldreq r3, [sp, #88]
  beq .L21650
  mov r3, r2, asl #2
  mov r3, ip, asl r3
  mov lr, #0
.L21651:
  movs  r7, r3, lsr #28
  mov ip, lr, asl #1
  ldrneh  r4, [ip, r5]
  ldrne r2, [sp, #88]
  add lr, lr, #1
  strneh  r4, [ip, r2]  @ movhi
  cmp lr, r6
  mov r3, r3, asl #4
  bne .L21651
  mov r3, r6, asl #1
  ldr r6, [sp, #88]
  add r5, r5, r3
  add r3, r6, r3
.L21650:
  sub r0, r0, #32
  b .L21647
.L22212:
  cmp r2, #3
  rsb ip, r2, #8
  bls .L22053
  cmp ip, #0
  ldr r1, [r0, #0]
  ldreq r1, [sp, #88]
  beq .L22057
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r3, r1, asl r3
  mov r1, #0
.L22058:
  movs  r6, r3, lsr #24
  mov r2, r1, asl #1
  ldrneh  r4, [r2, r5]
  ldrne r7, [sp, #88]
  add r1, r1, #1
  strneh  r4, [r2, r7]  @ movhi
  cmp r1, ip
  mov r3, r3, asl #8
  bne .L22058
  ldr r6, [sp, #88]
  mov r3, ip, asl #1
  add r5, r5, r3
  add r1, r6, r3
.L22057:
  sub r0, r0, #64
  b .L22052
.L22210:
  cmp r1, #3
  rsb ip, r1, #8
  bls .L21833
  cmp ip, #0
  ldr r2, [r0, #4]
  ldreq r1, [sp, #88]
  beq .L21837
  mov r3, r1, asl #3
  sub r3, r3, #32
  mov r3, r2, lsr r3
  mov r1, #0
.L21838:
  tst r3, #255
  mov r2, r1, asl #1
  ldrneh  r7, [r2, r5]
  ldrne r6, [sp, #88]
  add r1, r1, #1
  strneh  r7, [r2, r6]  @ movhi
  cmp ip, r1
  mov r3, r3, lsr #8
  bne .L21838
  mov r3, ip, asl #1
  ldr ip, [sp, #88]
  add r5, r5, r3
  add r1, ip, r3
.L21837:
  add r0, r0, #64
  b .L21832
.L22208:
  rsbs  r6, r3, #8
  ldr r0, [r0, r1]
  ldreq r3, [sp, #88]
  beq .L21520
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  mov r2, #0
.L21521:
  tst r0, #15
  mov r3, r2, asl #1
  ldrneh  r1, [r3, r5]
  ldrne r7, [sp, #88]
  add r2, r2, #1
  strneh  r1, [r3, r7]  @ movhi
  cmp r6, r2
  mov r0, r0, lsr #4
  bne .L21521
  ldr r2, [sp, #88]
  mov r3, r6, asl #1
  add r5, r5, r3
  add r3, r2, r3
.L21520:
  add ip, ip, #32
  b .L21517
.L21950:
  ldr lr, [sp, #108]
  rsb r0, ip, #8
  cmp lr, r0
  bge .L21953
  cmp lr, #0
  ble .L21367
  cmp ip, #3
  bls .L21956
  ldr r2, [sl, #0]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L21959:
  movs  r0, r2, lsr #24
  mov r3, r1, asl #1
  ldrneh  r6, [r3, r5]
  ldrne r4, [sp, #88]
  ldr r7, [sp, #108]
  add r1, r1, #1
  strneh  r6, [r3, r4]  @ movhi
  cmp r7, r1
  mov r2, r2, asl #8
  bne .L21959
  b .L21367
.L21730:
  ldr r6, [sp, #108]
  rsb r0, ip, #8
  cmp r6, r0
  bge .L21733
  cmp r6, #0
  ble .L21367
  cmp ip, #3
  bls .L21736
  ldr r2, [sl, #4]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L21739:
  tst r1, #255
  mov r3, r2, asl #1
  ldrneh  ip, [r3, r5]
  ldrne r7, [sp, #88]
  ldr lr, [sp, #108]
  add r2, r2, #1
  strneh  ip, [r3, r7]  @ movhi
  cmp lr, r2
  mov r1, r1, lsr #8
  bne .L21739
  b .L21367
.L21470:
  ldr r4, [sp, #108]
  rsb ip, r3, #8
  cmp r4, ip
  bge .L21473
  cmp r4, #0
  ble .L21367
  ldr r2, [r0, r1]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  mov r2, #0
.L21477:
  tst r0, #15
  mov r3, r2, asl #1
  ldrneh  r7, [r3, r5]
  ldrne r6, [sp, #88]
  ldr ip, [sp, #108]
  add r2, r2, #1
  strneh  r7, [r3, r6]  @ movhi
  cmp ip, r2
  mov r0, r0, lsr #4
  bne .L21477
  b .L21367
.L21600:
  ldr r3, [sp, #108]
  rsb lr, r6, #8
  cmp r3, lr
  bge .L21603
  cmp r3, #0
  ble .L21367
  ldr r2, [r0, #0]
  mov r3, r6, asl #2
  mov r0, r2, asl r3
  mov r2, #0
.L21607:
  movs  r4, r0, lsr #28
  mov r3, r2, asl #1
  ldrneh  r7, [r3, r5]
  ldrne r6, [sp, #88]
  ldr ip, [sp, #108]
  add r2, r2, #1
  strneh  r7, [r3, r6]  @ movhi
  cmp ip, r2
  mov r0, r0, asl #4
  bne .L21607
  b .L21367
.L22053:
  subs  r6, ip, #4
  ldr r1, [r0, #4]
  ldreq r1, [sp, #88]
  beq .L22065
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r3, r1, asl r3
  mov r1, #0
.L22066:
  movs  r7, r3, lsr #24
  mov r2, r1, asl #1
  ldrneh  r7, [r2, r5]
  ldrne r4, [sp, #88]
  add r1, r1, #1
  strneh  r7, [r2, r4]  @ movhi
  cmp r1, r6
  mov r3, r3, asl #8
  bne .L22066
  mov r3, ip, asl #1
  ldr ip, [sp, #88]
  add r2, r5, r3
  add r3, ip, r3
  sub r5, r2, #8
  sub r1, r3, #8
.L22065:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L22071
  tst r2, #255
  ldrneh  r3, [r5, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #4]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrneh  r6, [r5, #2]
  strneh  r6, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r7, [r5, #0]
  strneh  r7, [r1, #0]  @ movhi
.L22071:
  add r1, r1, #8
  add r5, r5, #8
  sub r0, r0, #64
  b .L22052
.L21833:
  subs  r6, ip, #4
  ldr r2, [r0, #0]
  ldreq r1, [sp, #88]
  beq .L21845
  mov r3, r1, asl #3
  mov r3, r2, lsr r3
  mov r1, #0
.L21846:
  tst r3, #255
  mov r2, r1, asl #1
  ldrneh  r7, [r2, r5]
  ldrne r4, [sp, #88]
  add r1, r1, #1
  strneh  r7, [r2, r4]  @ movhi
  cmp r1, r6
  mov r3, r3, lsr #8
  bne .L21846
  mov r3, ip, asl #1
  ldr ip, [sp, #88]
  add r2, r5, r3
  add r3, ip, r3
  sub r5, r2, #8
  sub r1, r3, #8
.L21845:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L21851
  tst r2, #255
  ldrneh  r3, [r5, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #2]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrneh  r6, [r5, #4]
  strneh  r6, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r7, [r5, #6]
  strneh  r7, [r1, #6]  @ movhi
.L21851:
  add r1, r1, #8
  add r5, r5, #8
  add r0, r0, #64
  b .L21832
.L21733:
  cmp ip, #3
  bls .L21763
  cmp r0, #0
  ldr r2, [sl, #4]
  ldreq r7, [sp, #88]
  beq .L21767
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L21768:
  tst r1, #255
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r5]
  ldrne lr, [sp, #88]
  add r2, r2, #1
  strneh  r4, [r3, lr]  @ movhi
  cmp r0, r2
  mov r1, r1, lsr #8
  bne .L21768
  ldr r6, [sp, #88]
  mov r3, r0, asl #1
  add r5, r5, r3
  add r7, r3, r6
.L21767:
  ldr ip, [sp, #108]
  add sl, sl, #64
  rsb r8, r0, ip
  b .L21732
.L21473:
  cmp ip, #0
  ldr r2, [r6, #0]
  ldreq r7, [sp, #88]
  beq .L21483
  mov r3, r3, asl #2
  mov r3, r2, lsr r3
  mov r1, #0
.L21484:
  tst r3, #15
  mov r2, r1, asl #1
  ldrneh  r0, [r2, r5]
  ldrne lr, [sp, #88]
  add r1, r1, #1
  strneh  r0, [r2, lr]  @ movhi
  cmp ip, r1
  mov r3, r3, lsr #4
  bne .L21484
  ldr r1, [sp, #88]
  mov r3, ip, asl #1
  add r5, r5, r3
  add r7, r3, r1
.L21483:
  ldr r2, [sp, #108]
  add r6, r6, #32
  rsb r8, ip, r2
  b .L21472
.L21603:
  cmp lr, #0
  ldr r2, [r0, #0]
  ldreq r1, [sp, #88]
  beq .L21613
  mov r3, r6, asl #2
  mov r3, r2, asl r3
  mov ip, #0
.L21614:
  movs  r1, r3, lsr #28
  mov r2, ip, asl #1
  ldrneh  r6, [r2, r5]
  ldrne r4, [sp, #88]
  add ip, ip, #1
  strneh  r6, [r2, r4]  @ movhi
  cmp lr, ip
  mov r3, r3, asl #4
  bne .L21614
  ldr r7, [sp, #88]
  mov r3, lr, asl #1
  add r5, r5, r3
  add r1, r3, r7
.L21613:
  ldr ip, [sp, #108]
  sub r0, r0, #32
  rsb r8, lr, ip
  b .L21602
.L21953:
  cmp ip, #3
  bls .L21983
  cmp r0, #0
  ldr r2, [sl, #0]
  ldreq r7, [sp, #88]
  beq .L21987
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r3, r2, asl r3
  mov r1, #0
.L21988:
  movs  r2, r3, lsr #24
  mov r2, r1, asl #1
  ldrneh  r6, [r2, r5]
  ldrne r4, [sp, #88]
  add r1, r1, #1
  strneh  r6, [r2, r4]  @ movhi
  cmp r0, r1
  mov r3, r3, asl #8
  bne .L21988
  ldr ip, [sp, #88]
  mov r3, r0, asl #1
  add r5, r5, r3
  add r7, ip, r3
.L21987:
  ldr r6, [sp, #108]
  sub sl, sl, #64
  rsb r8, r0, r6
  b .L21952
.L22217:
  mov r1, r8
  b .L22184
.L22216:
  mov lr, r8
  b .L22182
.L21983:
  subs  lr, r0, #4
  ldr r2, [sl, #4]
  ldreq r1, [sp, #88]
  beq .L21995
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r3, r2, asl r3
  mov r1, #0
.L21996:
  movs  r2, r3, lsr #24
  mov r2, r1, asl #1
  ldrneh  r6, [r2, r5]
  ldrne r4, [sp, #88]
  add r1, r1, #1
  strneh  r6, [r2, r4]  @ movhi
  cmp r1, lr
  mov r3, r3, asl #8
  bne .L21996
  ldr r7, [sp, #88]
  mov r3, r0, asl #1
  add r2, r5, r3
  add r3, r7, r3
  sub r5, r2, #8
  sub r1, r3, #8
.L21995:
  ldr r2, [sl, #0]
  cmp r2, #0
  beq .L22001
  tst r2, #255
  ldrneh  ip, [r5, #6]
  mov r3, r2, lsr #8
  strneh  ip, [r1, #6]  @ movhi
  tst r3, #255
  ldrneh  lr, [r5, #4]
  mov r3, r2, lsr #16
  strneh  lr, [r1, #4]  @ movhi
  tst r3, #255
  ldrneh  r3, [r5, #2]
  strneh  r3, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r4, [r5, #0]
  strneh  r4, [r1, #0]  @ movhi
.L22001:
  add r7, r1, #8
  add r5, r5, #8
  b .L21987
.L21763:
  subs  lr, r0, #4
  ldr r2, [sl, #0]
  ldreq r1, [sp, #88]
  beq .L21775
  mov r3, ip, asl #3
  mov r1, r2, lsr r3
  mov r2, #0
.L21776:
  tst r1, #255
  mov r3, r2, asl #1
  ldrneh  ip, [r3, r5]
  ldrne r7, [sp, #88]
  add r2, r2, #1
  strneh  ip, [r3, r7]  @ movhi
  cmp r2, lr
  mov r1, r1, lsr #8
  bne .L21776
  ldr lr, [sp, #88]
  mov r3, r0, asl #1
  add r2, r5, r3
  add r3, lr, r3
  sub r5, r2, #8
  sub r1, r3, #8
.L21775:
  ldr r2, [sl, #4]
  cmp r2, #0
  beq .L21781
  tst r2, #255
  ldrneh  r3, [r5, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r5, #2]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrneh  r6, [r5, #4]
  strneh  r6, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r7, [r5, #6]
  strneh  r7, [r1, #6]  @ movhi
.L21781:
  add r7, r1, #8
  add r5, r5, #8
  b .L21767
.L21956:
  ldr lr, [sp, #108]
  mov r3, ip, asl #3
  ldr r1, [sl, #4]
  add r2, lr, ip
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L21963
  cmp lr, #0
  movne r2, #0
  beq .L21367
.L21979:
  movs  r6, r1, lsr #24
  mov r3, r2, asl #1
  ldrneh  ip, [r3, r5]
  ldrne r7, [sp, #88]
  ldr lr, [sp, #108]
  add r2, r2, #1
  strneh  ip, [r3, r7]  @ movhi
  cmp lr, r2
  mov r1, r1, asl #8
  bne .L21979
  b .L21367
.L21736:
  ldr r0, [sp, #108]
  ldr r3, [sl, #0]
  add r2, r0, ip
  mov r1, ip, asl #3
  cmp r2, #4
  mov r3, r3, lsr r1
  bhi .L21743
  cmp r0, #0
  movne r1, #0
  beq .L21367
.L21759:
  tst r3, #255
  mov r2, r1, asl #1
  ldrneh  r7, [r2, r5]
  ldrne r6, [sp, #88]
  ldr ip, [sp, #108]
  add r1, r1, #1
  strneh  r7, [r2, r6]  @ movhi
  cmp ip, r1
  mov r3, r3, lsr #8
  bne .L21759
  b .L21367
.L21963:
  rsbs  r2, ip, #4
  ldreq r3, [sp, #88]
  beq .L21968
  mov r0, #0
.L21969:
  movs  r3, r1, lsr #24
  mov r3, r0, asl #1
  ldrneh  r6, [r3, r5]
  ldrne r4, [sp, #88]
  add r0, r0, #1
  strneh  r6, [r3, r4]  @ movhi
  cmp r0, r2
  mov r1, r1, asl #8
  bne .L21969
  ldr r7, [sp, #88]
  mov r3, r2, asl #1
  add r5, r5, r3
  add r3, r3, r7
.L21968:
  ldr lr, [sp, #108]
  subs  ip, lr, r2
  ldr r2, [sl, #0]
  beq .L21367
  mov r0, #0
.L21975:
  movs  r1, r2, lsr #24
  mov r1, r0, asl #1
  ldrneh  r4, [r1, r5]
  add r0, r0, #1
  strneh  r4, [r1, r3]  @ movhi
  cmp r0, ip
  mov r2, r2, asl #8
  bne .L21975
  b .L21367
.L21743:
  rsbs  r1, ip, #4
  ldreq ip, [sp, #88]
  beq .L21748
  mov r0, #0
.L21749:
  tst r3, #255
  mov r2, r0, asl #1
  ldrneh  r6, [r2, r5]
  ldrne r4, [sp, #88]
  add r0, r0, #1
  strneh  r6, [r2, r4]  @ movhi
  cmp r0, r1
  mov r3, r3, lsr #8
  bne .L21749
  ldr r7, [sp, #88]
  mov r3, r1, asl #1
  add r5, r5, r3
  add ip, r3, r7
.L21748:
  ldr lr, [sp, #108]
  ldr r3, [sl, #4]
  subs  r0, lr, r1
  beq .L21367
  mov r1, #0
.L21755:
  tst r3, #255
  mov r2, r1, asl #1
  ldrneh  r4, [r2, r5]
  add r1, r1, #1
  strneh  r4, [r2, ip]  @ movhi
  cmp r1, r0
  mov r3, r3, lsr #8
  bne .L21755
  b .L21367
  .size render_scanline_obj_copy_bitmap_2D, .-render_scanline_obj_copy_bitmap_2D
  .align  2
  .global render_scanline_obj_copy_bitmap_1D
  .type render_scanline_obj_copy_bitmap_1D, %function
render_scanline_obj_copy_bitmap_1D:
  @ args = 0, pretend = 0, frame = 604
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr lr, .L23084
  add r0, r0, r0, asl #2
  ldrh  r4, [lr, #6]
  ldr ip, .L23084+4
  add r0, r4, r0, asl #5
  ldr ip, [ip, r0, asl #2]
  sub sp, sp, #604
  ldrh  r6, [lr, #0]
  ldrh  r5, [lr, #74]
  str ip, [sp, #56]
  cmp ip, #0
  ldr lr, .L23084+8
  ldr ip, .L23084+12
  str r4, [sp, #52]
  and r4, r6, #7
  add r4, ip, r4, asl #2
  add r0, lr, r0, asl #7
  str r4, [sp, #36]
  str r0, [sp, #60]
  str r1, [sp, #12]
  str r2, [sp, #8]
  str r3, [sp, #4]
  mov r5, r5, lsr #8
  beq .L23027
  rsb r0, r1, r2
  and ip, r5, #16
  add lr, r3, r1, asl #1
  and r6, r6, #64
  mov r1, #0
  and r5, r5, #4
  str ip, [sp, #88]
  str r6, [sp, #92]
  str r5, [sp, #96]
  str lr, [sp, #100]
  str r0, [sp, #120]
  str r1, [sp, #44]
  mov r2, r1
.L22225:
  ldr r4, [sp, #60]
  ldr r5, .L23084+16
  ldrb  r3, [r2, r4]  @ zero_extendqisi2
  ldr lr, .L23084+20
  mov r3, r3, asl #3
  ldrh  r8, [r3, r5]
  add r3, r3, r5
  ldrh  sl, [r3, #2]
  mov r6, r8, lsr #12
  and r2, r6, #12
  orr r2, r2, sl, lsr #14
  mov r1, sl, asl #23
  ldr fp, [lr, r2, asl #2]
  ands  ip, r8, #512
  mov r9, r1, asr #23
  ldr r7, [sp, #8]
  addne r1, r9, fp, asl #1
  addeq r1, r9, fp
  str r6, [sp, #20]
  ldr r6, [sp, #12]
  ldrh  r3, [r3, #4]
  cmp r1, r7
  movcc r7, r1
  ldr r0, [sp, #8]
  ldr r1, [sp, #12]
  cmp r9, r6
  movcs r6, r9
  str r3, [sp, #16]
  cmp r0, r6
  movls r3, #0
  movhi r3, #1
  cmp r1, r7
  movcs r3, #0
  cmp r3, #0
  str r2, [sp, #48]
  str ip, [sp, #24]
  beq .L22229
  cmp r7, r6
  ldr r3, .L23084+24
  movls r4, r6, asl #1
  ldrh  r0, [r3, #0]
  strls r4, [sp, #0]
  bls .L22231
  mov r2, r6, asl #1
  add r3, sp, #124
  str r2, [sp, #0]
  rsb r1, r6, r7
  add r2, r3, r2
  mov r3, #0
.L22233:
  add r3, r3, #1
  cmp r1, r3
  strh  r0, [r2], #2  @ movhi
  bne .L22233
.L22231:
  ldr r5, .L23084+28
  ldr r3, [r5, #0]
  cmp r3, #0
  beq .L22234
  ldr r5, .L23084+32
  mov r4, #0
  b .L22236
.L23056:
  ldr ip, [sp, #88]
  cmp ip, #0
  bic ip, r0, #4
  beq .L22239
  ldr lr, [sp, #92]
  mov r0, ip
  cmp lr, #0
  mov r1, r6
  mov r2, r7
  add r3, sp, #124
  beq .L22241
  bl  render_scanline_obj_normal_1D
.L22239:
  ldr ip, .L23084+28
  add r4, r4, #1
  ldr r3, [ip, #0]
  add r5, r5, #4
  cmp r3, r4
  bls .L22234
.L22236:
  ldr r0, [r5, #0]
  tst r0, #4
  bne .L23056
  ldr r0, [sp, #96]
  mov r1, r7
  cmp r0, #0
  add r2, sp, #124
  mov r0, r6
  beq .L22239
  ldr r3, [sp, #36]
  mov lr, pc
  ldr pc, [r3, #0]
  ldr ip, .L23084+28
  add r4, r4, #1
  ldr r3, [ip, #0]
  add r5, r5, #4
  cmp r3, r4
  bhi .L22236
.L22234:
  and r0, r8, #255
  ldr r1, [sp, #0]
  cmp r0, #160
  add lr, sp, #124
  ldr r3, .L23084+36
  ldr r2, [sp, #48]
  add lr, lr, r1
  subgt r0, r0, #256
  tst r8, #256
  str lr, [sp, #40]
  ldr r4, [r3, r2, asl #2]
  beq .L22246
  tst r8, #8192
  beq .L22248
  ldr r6, .L23084+16
  mov r3, sl, lsr #4
  ldr r5, [sp, #24]
  add r1, r4, r4, lsr #31
  and r3, r3, #992
  add r3, r3, r6
  mov lr, r1, asr #1
  add r2, fp, fp, lsr #31
  ldr r1, [sp, #12]
  cmp r5, #0
  mov ip, r2, asr #1
  ldrh  sl, [r3, #30]
  ldrh  r8, [r3, #6]
  ldrh  r2, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq r5, fp
  moveq r7, ip
  moveq r6, lr
  movne r5, fp, asl #1
  movne r7, ip, asl #1
  movne r6, lr, asl #1
  cmp r9, r1
  str r3, [sp, #28]
  bge .L22253
  rsb r1, r9, r1
  rsb r5, r1, r5
  cmp r5, #0
  ble .L22229
  ldr r9, [sp, #12]
  rsb r7, r1, r7
.L22253:
  ldr r1, [sp, #8]
  add r3, r9, r5
  cmp r3, r1
  blt .L22256
  rsb r5, r9, r1
  cmp r5, #0
  ble .L22229
.L22256:
  add r0, r0, r6
  ldr r6, [sp, #28]
  mov r1, sl, asl #16
  mov ip, ip, asl #8
  mov r3, r8, asl #16
  cmp r6, #0
  str ip, [sp, #116]
  mov r6, r1, asr #16
  mov ip, lr, asl #8
  ldr r1, [sp, #52]
  ldr lr, [sp, #4]
  mov r2, r2, asl #16
  mov r3, r3, asr #16
  add sl, lr, r9, asl #1
  str r3, [sp, #64]
  mov r8, r2, asr #16
  rsb lr, r0, r1
  bne .L22258
  mla r3, lr, r6, ip
  mov r0, r3, asr #8
  cmp r0, r4
  bcs .L22229
  cmp fp, #0
  ldr r4, [sp, #16]
  add r3, fp, #7
  movge r3, fp
  mov r3, r3, asr #3
  mov r2, r4, asl #22
  mov r3, r3, asl #1
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L23084+40
  add r0, r0, ip, asl #2
  cmp r5, #0
  add r6, r3, r0, asl #3
  ble .L22229
  ldr r2, [sp, #64]
  mul r3, lr, r8
  mul r2, r7, r2
  ldr ip, [sp, #116]
  rsb r3, r2, r3
  add r0, ip, r3
  mov ip, r0, asr #8
  cmp ip, fp
  ldrcs lr, [sp, #28]
  bcs .L22264
  b .L23080
.L22265:
  cmp ip, fp
  bcc .L23044
.L22264:
  ldr r2, [sp, #40]
  ldr r1, [sp, #64]
  add lr, lr, #1
  add r0, r0, r1
  add r2, r2, #2
  cmp r5, lr
  mov ip, r0, asr #8
  add sl, sl, #2
  str r2, [sp, #40]
  bne .L22265
.L22229:
  ldr ip, [sp, #44]
  ldr lr, [sp, #56]
  add ip, ip, #1
  cmp ip, lr
  str ip, [sp, #44]
  beq .L23027
.L23059:
  ldr r2, [sp, #44]
  b .L22225
.L22241:
  mov r0, ip
  mov r1, r6
  mov r2, r7
  add r3, sp, #124
  bl  render_scanline_obj_normal_2D
  b .L22239
.L22246:
  ldr lr, [sp, #52]
  tst sl, #8192
  rsb ip, r0, lr
  ldr r0, [sp, #20]
  rsbne r3, ip, r4
  subne ip, r3, #1
  mov r2, sl, asl #19
  and r3, r0, #2
  orr r3, r3, r2, lsr #31
  cmp r3, #3
  ldrls pc, [pc, r3, asl #2]
  b .L22229
  .p2align 2
.L22326:
  .word .L22322
  .word .L22323
  .word .L22324
  .word .L22325
.L22248:
  ldr r6, .L23084+16
  mov r3, sl, lsr #4
  ldr r5, [sp, #24]
  add r1, r4, r4, lsr #31
  and r3, r3, #992
  add r3, r3, r6
  mov lr, r1, asr #1
  add r2, fp, fp, lsr #31
  ldr r1, [sp, #12]
  cmp r5, #0
  mov ip, r2, asr #1
  ldrh  sl, [r3, #30]
  ldrh  r8, [r3, #6]
  ldrh  r2, [r3, #14]
  ldrh  r3, [r3, #22]
  moveq r5, fp
  moveq r7, ip
  moveq r6, lr
  movne r5, fp, asl #1
  movne r7, ip, asl #1
  movne r6, lr, asl #1
  cmp r9, r1
  str r3, [sp, #32]
  bge .L22285
  rsb r1, r9, r1
  rsb r5, r1, r5
  cmp r5, #0
  ble .L22229
  ldr r9, [sp, #12]
  rsb r7, r1, r7
.L22285:
  ldr r1, [sp, #8]
  add r3, r9, r5
  cmp r3, r1
  blt .L22288
  rsb r5, r9, r1
  cmp r5, #0
  ble .L22229
.L22288:
  add r0, r0, r6
  ldr r6, [sp, #32]
  mov r1, sl, asl #16
  mov ip, ip, asl #8
  mov r3, r8, asl #16
  mov r2, r2, asl #16
  cmp r6, #0
  str ip, [sp, #104]
  mov r6, r1, asr #16
  mov ip, lr, asl #8
  ldr r1, [sp, #52]
  ldr lr, [sp, #4]
  mov r3, r3, asr #16
  mov r2, r2, asr #16
  add sl, lr, r9, asl #1
  str r3, [sp, #72]
  str r2, [sp, #76]
  rsb lr, r0, r1
  bne .L22290
  mla r3, lr, r6, ip
  mov r0, r3, asr #8
  cmp r0, r4
  bcs .L22229
  ldr r4, [sp, #16]
  cmp fp, #0
  add r3, fp, #7
  mov r2, r4, asl #22
  movge r3, fp
  mov r3, r3, asr #3
  mov r1, r0, lsr #3
  mov r2, r2, lsr #22
  mla ip, r3, r1, r2
  and r0, r0, #7
  ldr r3, .L23084+40
  add r0, r0, ip, asl #3
  cmp r5, #0
  add r8, r3, r0, asl #2
  ble .L22229
  ldr r3, [sp, #76]
  ldr r2, [sp, #72]
  mul r3, lr, r3
  mul r2, r7, r2
  ldr r6, [sp, #104]
  rsb r3, r2, r3
  add r0, r6, r3
  mov ip, r0, asr #8
  cmp ip, fp
  ldrcs r1, [sp, #32]
  bcs .L22296
  b .L23081
.L22297:
  cmp ip, fp
  bcc .L23046
.L22296:
  ldr ip, [sp, #72]
  ldr lr, [sp, #40]
  add r1, r1, #1
  add r0, r0, ip
  add lr, lr, #2
  cmp r5, r1
  mov ip, r0, asr #8
  add sl, sl, #2
  str lr, [sp, #40]
  bne .L22297
  ldr ip, [sp, #44]
  ldr lr, [sp, #56]
  add ip, ip, #1
  cmp ip, lr
  str ip, [sp, #44]
  bne .L23059
.L23027:
  add sp, sp, #604
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L22299:
  cmp ip, fp
  bcs .L22229
.L23046:
  mov r3, ip, asr #1
  and r6, r3, #3
  mov r3, ip, asr #3
  mov r3, r3, asl #5
  mov r2, ip, asr #1
  tst ip, #1
  and lr, r2, #3
  add ip, r3, r8
  add r2, r3, r8
  ldreqb  r3, [r2, lr]  @ zero_extendqisi2
  ldrneb  r3, [ip, r6]  @ zero_extendqisi2
  andeq r2, r3, #15
  movne r2, r3, lsr #4
  cmp r2, #0
  ldrne r4, [sp, #40]
  ldr r6, [sp, #40]
  ldrneh  r4, [r4, #0]
  ldr r3, [sp, #72]
  add r1, r1, #1
  strneh  r4, [sl, #0]  @ movhi
  add r0, r0, r3
  add r6, r6, #2
  cmp r5, r1
  mov ip, r0, asr #8
  add sl, sl, #2
  str r6, [sp, #40]
  bgt .L22299
  b .L22229
.L22290:
  ldr r0, [sp, #16]
  cmp fp, #0
  add r1, fp, #7
  mov r2, r0, asl #22
  movge r1, fp
  ldr r3, .L23084+40
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #5
  cmp r5, #0
  str r2, [sp, #108]
  str r1, [sp, #84]
  ble .L22229
  ldr r1, [sp, #32]
  ldr r0, [sp, #72]
  mov r3, r1, asl #16
  mov r3, r3, asr #16
  str r3, [sp, #80]
  ldr r1, [sp, #80]
  ldr r3, [sp, #76]
  mul r2, lr, r6
  mul r3, lr, r3
  mul r1, r7, r1
  mul r0, r7, r0
  ldr r6, [sp, #104]
  rsb r2, r1, r2
  rsb r3, r0, r3
  add r7, r6, r3
  add r6, ip, r2
  mov lr, r7, asr #8
  mov r3, r6, asr #8
  cmp lr, fp
  cmpcc r3, r4
  movcs r2, #0
  movcc r2, #1
  movcs r8, r2
  bcs .L22309
  b .L23082
.L22310:
  cmp lr, fp
  cmpcc r3, r4
  bcc .L22312
.L22309:
  ldr lr, [sp, #80]
  ldr r0, [sp, #40]
  ldr ip, [sp, #72]
  add r8, r8, #1
  add r6, r6, lr
  add r7, r7, ip
  add r0, r0, #2
  cmp r5, r8
  mov lr, r7, asr #8
  mov r3, r6, asr #8
  add sl, sl, #2
  str r0, [sp, #40]
  bne .L22310
  b .L22229
.L23061:
  ldr r1, [sp, #108]
  and r0, r3, #7
  ldr r2, [sp, #84]
  add r0, r1, r0, asl #2
  and r1, r3, #7
  mov r3, r3, asr #3
  mov ip, lr, asr #1
  mul r2, r3, r2
  and r9, ip, #3
  ldr ip, [sp, #108]
  mov r3, lr, asr #1
  add r1, ip, r1, asl #2
  and ip, r3, #3
  mov r3, lr, asr #3
  add r2, r2, r3, asl #5
  add r3, r0, r2
  tst lr, #1
  add r0, r1, r2
  ldreqb  r3, [r0, ip]  @ zero_extendqisi2
  ldrneb  r3, [r3, r9]  @ zero_extendqisi2
  andeq r0, r3, #15
  movne r0, r3, lsr #4
  cmp r0, #0
  ldrne r2, [sp, #40]
  ldr lr, [sp, #72]
  ldrneh  r2, [r2, #0]
  ldr ip, [sp, #40]
  ldr r1, [sp, #80]
  add r8, r8, #1
  strneh  r2, [sl, #0]  @ movhi
  add r7, r7, lr
  add r6, r6, r1
  add ip, ip, #2
  cmp r5, r8
  mov lr, r7, asr #8
  mov r3, r6, asr #8
  add sl, sl, #2
  str ip, [sp, #40]
  ble .L22229
.L22312:
  cmp r3, r4
  cmpcc lr, fp
  bcc .L23061
  b .L22229
.L22267:
  cmp ip, fp
  bcs .L22229
.L23044:
  ldr r3, [sp, #64]
  and r1, ip, #7
  add r0, r0, r3
  mov r3, ip, asr #3
  add r3, r6, r3, asl #6
  ldrb  r2, [r3, r1]  @ zero_extendqisi2
  ldr r1, [sp, #40]
  cmp r2, #0
  ldrne r4, [sp, #40]
  add lr, lr, #1
  ldrneh  r4, [r4, #0]
  add r1, r1, #2
  strneh  r4, [sl, #0]  @ movhi
  cmp r5, lr
  mov ip, r0, asr #8
  add sl, sl, #2
  str r1, [sp, #40]
  bgt .L22267
  b .L22229
.L22258:
  ldr r3, [sp, #16]
  cmp fp, #0
  add r1, fp, #7
  mov r2, r3, asl #22
  movge r1, fp
  ldr r3, .L23084+40
  mov r2, r2, lsr #22
  mov r1, r1, asr #3
  add r2, r3, r2, asl #5
  mov r1, r1, asl #6
  cmp r5, #0
  str r2, [sp, #112]
  str r1, [sp, #68]
  ble .L22229
  ldr r0, [sp, #28]
  mul r2, lr, r6
  mov r3, r0, asl #16
  mov r9, r3, asr #16
  ldr r0, [sp, #64]
  mul r1, r9, r7
  mul r3, lr, r8
  mul r0, r7, r0
  rsb r2, r1, r2
  ldr r1, [sp, #116]
  rsb r3, r0, r3
  add r7, r1, r3
  add r6, ip, r2
  mov lr, r7, asr #8
  mov ip, r6, asr #8
  cmp lr, fp
  cmpcc ip, r4
  movcs r3, #0
  movcc r3, #1
  movcs r8, r3
  bcs .L22274
  b .L23083
.L22275:
  cmp lr, fp
  cmpcc ip, r4
  bcc .L22277
.L22274:
  ldr r3, [sp, #40]
  ldr r2, [sp, #64]
  add r8, r8, #1
  add r7, r7, r2
  add r6, r6, r9
  add r3, r3, #2
  cmp r5, r8
  mov lr, r7, asr #8
  mov ip, r6, asr #8
  add sl, sl, #2
  str r3, [sp, #40]
  bne .L22275
  b .L22229
.L23063:
  ldr r0, [sp, #64]
  and r3, ip, #7
  mov r2, lr, asr #3
  ldr r1, [sp, #112]
  mov r3, r3, asl #3
  add r7, r7, r0
  add r3, r3, r2, asl #6
  ldr r0, [sp, #68]
  mov r2, ip, asr #3
  add r3, r3, r1
  mla r0, r2, r0, r3
  and r1, lr, #7
  ldrb  r3, [r0, r1]  @ zero_extendqisi2
  add r8, r8, #1
  cmp r3, #0
  ldrne r2, [sp, #40]
  ldr r3, [sp, #40]
  ldrneh  r2, [r2, #0]
  add r6, r6, r9
  strneh  r2, [sl, #0]  @ movhi
  add r3, r3, #2
  cmp r5, r8
  mov ip, r6, asr #8
  mov lr, r7, asr #8
  add sl, sl, #2
  str r3, [sp, #40]
  ble .L22229
.L22277:
  cmp ip, r4
  cmpcc lr, fp
  bcc .L23063
  b .L22229
.L22322:
  ldr r1, [sp, #16]
  cmp fp, #0
  add r3, fp, #7
  mov r2, r1, asl #22
  movge r3, fp
  mov lr, r3, asr #3
  mov r2, r2, lsr #22
  mov r3, ip, lsr #3
  mla r0, lr, r3, r2
  ldr r2, [sp, #12]
  and r1, ip, #7
  ldr r3, .L23084+40
  add r1, r1, r0, asl #3
  cmp r9, r2
  add r0, r3, r1, asl #2
  bge .L22327
  rsb ip, r9, r2
  rsb lr, ip, fp
  cmp lr, #0
  ble .L22229
  ldr r4, [sp, #8]
  add r3, r9, fp
  cmp r4, r3
  bhi .L22330
  mov r3, ip, lsr #3
  mov r1, r3, asl #5
  ands  r3, ip, #7
  add r6, r0, r1
  bne .L22332
  ldr r5, [sp, #120]
  ldr r7, [sp, #100]
.L22334:
  movs  lr, r5, lsr #3
  beq .L22351
  ldr r1, [sp, #40]
  mov r2, r7
  mov r0, r6
  mov ip, #0
.L22353:
  ldr r3, [r0, #0]
  cmp r3, #0
  beq .L22354
  tst r3, #15
  ldrneh  r4, [r1, #0]
  strneh  r4, [r2, #0]  @ movhi
  tst r3, #240
  ldrneh  r4, [r1, #2]
  strneh  r4, [r2, #2]  @ movhi
  tst r3, #3840
  ldrneh  r4, [r1, #4]
  strneh  r4, [r2, #4]  @ movhi
  tst r3, #61440
  ldrneh  r4, [r1, #6]
  strneh  r4, [r2, #6]  @ movhi
  tst r3, #983040
  ldrneh  r4, [r1, #8]
  strneh  r4, [r2, #8]  @ movhi
  tst r3, #15728640
  ldrneh  r4, [r1, #10]
  strneh  r4, [r2, #10] @ movhi
  tst r3, #251658240
  ldrneh  r4, [r1, #12]
  strneh  r4, [r2, #12] @ movhi
  movs  r3, r3, lsr #28
  ldrneh  r3, [r1, #14]
  strneh  r3, [r2, #14] @ movhi
.L22354:
  add ip, ip, #1
  cmp ip, lr
  add r0, r0, #32
  add r2, r2, #16
  add r1, r1, #16
  bne .L22353
  ldr r4, [sp, #40]
  mov r3, lr, asl #4
  add r4, r4, r3
  add r7, r7, r3
  add r6, r6, lr, asl #5
  str r4, [sp, #40]
.L22351:
  ands  r0, r5, #7
  beq .L22229
  ldr r3, [r6, #0]
  mov r1, #0
.L22373:
  tst r3, #15
  ldrne r5, [sp, #40]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r5]
  add r1, r1, #1
  strneh  r5, [r2, r7]  @ movhi
  cmp r1, r0
  mov r3, r3, lsr #4
  bne .L22373
  b .L22229
.L22323:
  ldr r4, [sp, #16]
  cmp fp, #0
  add r3, fp, #7
  mov r2, r4, asl #22
  movge r3, fp
  mov lr, r3, asr #3
  mov r2, r2, lsr #22
  mov r1, ip, lsr #3
  mla r0, lr, r1, r2
  subs  r3, fp, #8
  submi r3, fp, #1
  ldr r5, [sp, #12]
  add r0, r0, r3, asr #3
  and r2, ip, #7
  ldr r3, .L23084+40
  add r2, r2, r0, asl #3
  cmp r9, r5
  add r0, r3, r2, asl #2
  bge .L22457
  rsb ip, r9, r5
  rsb r1, ip, fp
  cmp r1, #0
  ble .L22229
  ldr r6, [sp, #8]
  add r3, r9, fp
  cmp r6, r3
  bhi .L22460
  mov r3, ip, lsr #3
  ands  r6, ip, #7
  sub r0, r0, r3, asl #5
  bne .L22462
  ldr r8, [sp, #120]
  ldr r1, [sp, #100]
.L22464:
  movs  r3, r8, lsr #3
  beq .L22481
  ldr lr, [sp, #40]
  mov ip, r1
  mov r6, r0
  mov r7, #0
.L22483:
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L22484
  tst r2, #15
  ldrneh  r4, [lr, #14]
  strneh  r4, [ip, #14] @ movhi
  tst r2, #240
  ldrneh  r5, [lr, #12]
  strneh  r5, [ip, #12] @ movhi
  tst r2, #3840
  ldrneh  r4, [lr, #10]
  strneh  r4, [ip, #10] @ movhi
  tst r2, #61440
  ldrneh  r5, [lr, #8]
  strneh  r5, [ip, #8]  @ movhi
  tst r2, #983040
  ldrneh  r4, [lr, #6]
  strneh  r4, [ip, #6]  @ movhi
  tst r2, #15728640
  ldrneh  r5, [lr, #4]
  strneh  r5, [ip, #4]  @ movhi
  tst r2, #251658240
  ldrneh  r4, [lr, #2]
  strneh  r4, [ip, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrneh  r5, [lr, #0]
  strneh  r5, [ip, #0]  @ movhi
.L22484:
  add r7, r7, #1
  cmp r7, r3
  sub r6, r6, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L22483
  ldr r6, [sp, #40]
  rsb r2, r3, r3, asl #27
  mov r3, r3, asl #4
  add r6, r6, r3
  add r1, r1, r3
  add r0, r0, r2, asl #5
  str r6, [sp, #40]
.L22481:
  ands  ip, r8, #7
  beq .L22229
  ldr r0, [r0, #0]
  mov r2, #0
.L22503:
  movs  lr, r0, lsr #28
  ldrne r4, [sp, #40]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r4]
  add r2, r2, #1
  strneh  r4, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, asl #4
  bne .L22503
  b .L22229
.L22325:
  cmp fp, #0
  add r2, fp, #7
  movge r2, fp
  subs  r3, fp, #8
  submi r3, fp, #1
  mov lr, r2, asr #3
  mov r3, r3, asr #3
  mov r1, ip, lsr #3
  mla r0, lr, r1, r3
  ldr r4, [sp, #16]
  and r3, ip, #7
  mov r2, r4, asl #22
  mov r2, r2, lsr #22
  add r2, r2, r0, asl #1
  add r3, r3, r2, asl #2
  ldr r5, [sp, #12]
  mov r0, r3, asl #3
  ldr r3, .L23084+40
  cmp r9, r5
  add r8, r0, r3
  bge .L22807
  rsb r0, r9, r5
  rsb lr, r0, fp
  cmp lr, #0
  ble .L22229
  ldr r6, [sp, #8]
  add r3, r9, fp
  cmp r6, r3
  bhi .L22810
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  sub sl, r8, r3, asl #6
  bne .L22812
  ldr r8, [sp, #120]
  ldr r7, [sp, #100]
.L22814:
  movs  r6, r8, lsr #3
  beq .L22872
  ldr r0, [sp, #40]
  mov r1, r7
  mov ip, sl
  mov lr, #0
.L22874:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L22875
  tst r2, #255
  ldrneh  r3, [r0, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r0, #4]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrneh  r5, [r0, #2]
  strneh  r5, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r2, [r0, #0]
  strneh  r2, [r1, #0]  @ movhi
.L22875:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L22884
  tst r2, #255
  ldrneh  r3, [r0, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r0, #12]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #12] @ movhi
  tst r3, #255
  ldrneh  r5, [r0, #10]
  strneh  r5, [r1, #10] @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r2, [r0, #8]
  strneh  r2, [r1, #8]  @ movhi
.L22884:
  add lr, lr, #1
  cmp lr, r6
  sub ip, ip, #64
  add r1, r1, #16
  add r0, r0, #16
  bne .L22874
  ldr r4, [sp, #40]
  mov r3, r6, asl #4
  rsb r2, r6, r6, asl #26
  add r4, r4, r3
  add r7, r7, r3
  add sl, sl, r2, asl #6
  str r4, [sp, #40]
.L22872:
  ands  ip, r8, #7
  beq .L22229
  cmp ip, #3
  ldrls r2, [sl, #4]
  bls .L22907
  ldr r2, [sl, #4]
  cmp r2, #0
  beq .L22897
  tst r2, #255
  ldrne r5, [sp, #40]
  mov r3, r2, lsr #8
  ldrneh  r5, [r5, #6]
  strneh  r5, [r7, #6]  @ movhi
  tst r3, #255
  ldrne r6, [sp, #40]
  mov r3, r2, lsr #16
  ldrneh  r6, [r6, #4]
  strneh  r6, [r7, #4]  @ movhi
  tst r3, #255
  ldrne lr, [sp, #40]
  ldrneh  lr, [lr, #2]
  strneh  lr, [r7, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r0, [sp, #40]
  ldrneh  r0, [r0, #0]
  strneh  r0, [r7, #0]  @ movhi
.L22897:
  subs  ip, ip, #4
  ldr r2, [sl, #0]
  beq .L22229
  ldr r1, [sp, #40]
  add r7, r7, #8
  add r1, r1, #8
  str r1, [sp, #40]
.L22907:
  mov r1, #0
.L22908:
  movs  r3, r2, lsr #24
  ldrne r4, [sp, #40]
  mov r0, r1, asl #1
  ldrneh  r4, [r0, r4]
  add r1, r1, #1
  strneh  r4, [r0, r7]  @ movhi
  cmp ip, r1
  mov r2, r2, asl #8
  bhi .L22908
  b .L22229
.L23085:
  .align  2
.L23084:
  .word io_registers
  .word obj_priority_count
  .word obj_priority_list
  .word bitmap_mode_renderers-12
  .word oam_ram
  .word obj_width_table
  .word palette_ram_converted
  .word layer_count
  .word layer_order
  .word obj_height_table
  .word vram+65536
  .word vram+65472
  .word vram+65600
.L22324:
  ldr lr, [sp, #16]
  cmp fp, #0
  add r3, fp, #7
  mov r1, lr, asl #22
  movge r3, fp
  mov r2, ip, lsr #3
  mov r6, r3, asr #3
  mov r2, r2, asl #1
  mov r1, r1, lsr #22
  mla r0, r2, r6, r1
  and r3, ip, #7
  add r3, r3, r0, asl #2
  ldr r1, [sp, #12]
  mov r0, r3, asl #3
  ldr r3, .L23084+40
  cmp r9, r1
  add r2, r0, r3
  bge .L22587
  rsb r0, r9, r1
  rsb lr, r0, fp
  cmp lr, #0
  ble .L22229
  ldr r4, [sp, #8]
  add r3, r9, fp
  cmp r4, r3
  bhi .L22590
  mov r3, r0, lsr #3
  ands  ip, r0, #7
  add sl, r2, r3, asl #6
  bne .L22592
  ldr r8, [sp, #120]
  ldr r7, [sp, #100]
.L22594:
  movs  r6, r8, lsr #3
  beq .L22652
  ldr r0, [sp, #40]
  mov r1, r7
  mov ip, sl
  mov lr, #0
.L22654:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L22655
  tst r2, #255
  ldrneh  r3, [r0, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r0, #2]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrneh  r5, [r0, #4]
  strneh  r5, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r2, [r0, #6]
  strneh  r2, [r1, #6]  @ movhi
.L22655:
  ldr r2, [ip, #4]
  cmp r2, #0
  beq .L22664
  tst r2, #255
  ldrneh  r3, [r0, #8]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrneh  r4, [r0, #10]
  mov r3, r2, lsr #16
  strneh  r4, [r1, #10] @ movhi
  tst r3, #255
  ldrneh  r5, [r0, #12]
  strneh  r5, [r1, #12] @ movhi
  movs  r2, r2, lsr #24
  ldrneh  r2, [r0, #14]
  strneh  r2, [r1, #14] @ movhi
.L22664:
  add lr, lr, #1
  cmp lr, r6
  add ip, ip, #64
  add r1, r1, #16
  add r0, r0, #16
  bne .L22654
  ldr r4, [sp, #40]
  mov r3, r6, asl #4
  add r4, r4, r3
  add r7, r7, r3
  add sl, sl, r6, asl #6
  str r4, [sp, #40]
.L22652:
  ands  r0, r8, #7
  beq .L22229
  cmp r0, #3
  ldrls r3, [sl, #0]
  bls .L22687
  ldr r2, [sl, #0]
  cmp r2, #0
  beq .L22677
  tst r2, #255
  ldrne r5, [sp, #40]
  mov r3, r2, lsr #8
  ldrneh  r5, [r5, #0]
  strneh  r5, [r7, #0]  @ movhi
  tst r3, #255
  ldrne r6, [sp, #40]
  mov r3, r2, lsr #16
  ldrneh  r6, [r6, #2]
  strneh  r6, [r7, #2]  @ movhi
  tst r3, #255
  ldrne ip, [sp, #40]
  ldrneh  ip, [ip, #4]
  strneh  ip, [r7, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne lr, [sp, #40]
  ldrneh  lr, [lr, #6]
  strneh  lr, [r7, #6]  @ movhi
.L22677:
  subs  r0, r0, #4
  ldr r3, [sl, #4]
  beq .L22229
  ldr r1, [sp, #40]
  add r7, r7, #8
  add r1, r1, #8
  str r1, [sp, #40]
.L22687:
  mov r2, #0
.L22688:
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r1, r2, asl #1
  ldrneh  r4, [r1, r4]
  add r2, r2, #1
  strneh  r4, [r1, r7]  @ movhi
  cmp r0, r2
  mov r3, r3, lsr #8
  bhi .L22688
  b .L22229
.L22587:
  ldr r4, [sp, #8]
  add r3, r9, fp
  cmp r4, r3
  bls .L23064
  cmp r6, #0
  beq .L22229
  ldr r5, [sp, #4]
  ldr r3, .L23084+48
  add r1, r5, r9, asl #1
  add r0, r0, r3
  mov lr, #0
  b .L22787
.L23065:
  ldr r3, [sp, #40]
  add r2, r2, #64
  add r3, r3, #16
  add r1, r1, #16
  str r3, [sp, #40]
.L22787:
  ldr ip, [r2, #0]
  cmp ip, #0
  beq .L22788
  tst ip, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r3, ip, lsr #16
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  movs  ip, ip, lsr #24
  ldrne ip, [sp, #40]
  ldrneh  ip, [ip, #6]
  strneh  ip, [r1, #6]  @ movhi
.L22788:
  ldr ip, [r0, #-60]
  cmp ip, #0
  beq .L22797
  tst ip, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #8]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r3, ip, lsr #16
  ldrneh  r4, [r4, #10]
  strneh  r4, [r1, #10] @ movhi
  tst r3, #255
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #12]
  strneh  r5, [r1, #12] @ movhi
  movs  ip, ip, lsr #24
  ldrne ip, [sp, #40]
  ldrneh  ip, [ip, #14]
  strneh  ip, [r1, #14] @ movhi
.L22797:
  add lr, lr, #1
  cmp r6, lr
  add r0, r0, #64
  bne .L23065
  b .L22229
.L22457:
  ldr r1, [sp, #8]
  add r3, r9, fp
  cmp r1, r3
  bls .L23066
  cmp lr, #0
  beq .L22229
  ldr r5, [sp, #4]
  mov r3, #0
  add r1, r5, r9, asl #1
  b .L22568
.L23067:
  ldr r6, [sp, #40]
  sub r0, r0, #32
  add r6, r6, #16
  add r1, r1, #16
  str r6, [sp, #40]
.L22568:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L22569
  tst r2, #15
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #14]
  strneh  r6, [r1, #14] @ movhi
  tst r2, #240
  ldrne ip, [sp, #40]
  ldrneh  ip, [ip, #12]
  strneh  ip, [r1, #12] @ movhi
  tst r2, #3840
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #10]
  strneh  r4, [r1, #10] @ movhi
  tst r2, #61440
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #8]
  strneh  r5, [r1, #8]  @ movhi
  tst r2, #983040
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
  tst r2, #15728640
  ldrne ip, [sp, #40]
  ldrneh  ip, [ip, #4]
  strneh  ip, [r1, #4]  @ movhi
  tst r2, #251658240
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #0]
  strneh  r5, [r1, #0]  @ movhi
.L22569:
  add r3, r3, #1
  cmp lr, r3
  bne .L23067
  b .L22229
.L22327:
  ldr r1, [sp, #8]
  add r3, r9, fp
  cmp r1, r3
  bls .L23068
  cmp lr, #0
  beq .L22229
  ldr r2, [sp, #4]
  mov r3, #0
  add r1, r2, r9, asl #1
  b .L22438
.L23069:
  ldr r2, [sp, #40]
  add r0, r0, #32
  add r2, r2, #16
  add r1, r1, #16
  str r2, [sp, #40]
.L22438:
  ldr ip, [r0, #0]
  cmp ip, #0
  beq .L22439
  tst ip, #15
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #0]
  strneh  r4, [r1, #0]  @ movhi
  tst ip, #240
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r1, #2]  @ movhi
  tst ip, #3840
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #4]
  strneh  r6, [r1, #4]  @ movhi
  tst ip, #61440
  ldrne r2, [sp, #40]
  ldrneh  r2, [r2, #6]
  strneh  r2, [r1, #6]  @ movhi
  tst ip, #983040
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #8]
  strneh  r4, [r1, #8]  @ movhi
  tst ip, #15728640
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r1, #10] @ movhi
  tst ip, #251658240
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #12]
  strneh  r6, [r1, #12] @ movhi
  movs  ip, ip, lsr #28
  ldrne ip, [sp, #40]
  ldrneh  ip, [ip, #14]
  strneh  ip, [r1, #14] @ movhi
.L22439:
  add r3, r3, #1
  cmp lr, r3
  bne .L23069
  b .L22229
.L22807:
  ldr r4, [sp, #8]
  add r3, r9, fp
  cmp r4, r3
  bls .L23070
  cmp lr, #0
  beq .L22229
  ldr r5, [sp, #4]
  ldr r3, .L23084+44
  add r1, r5, r9, asl #1
  add r0, r0, r3
  mov r2, #0
  b .L23007
.L23071:
  ldr r6, [sp, #40]
  sub r8, r8, #64
  add r6, r6, #16
  add r1, r1, #16
  str r6, [sp, #40]
.L23007:
  ldr ip, [r0, #68]
  cmp ip, #0
  beq .L23008
  tst ip, #255
  ldrne r6, [sp, #40]
  mov r3, ip, lsr #8
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r1, #4]  @ movhi
  mov r3, ip, lsr #16
  tst r3, #255
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  movs  ip, ip, lsr #24
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #0]
  strneh  r5, [r1, #0]  @ movhi
.L23008:
  ldr ip, [r8, #0]
  cmp ip, #0
  beq .L23017
  tst ip, #255
  ldrne r6, [sp, #40]
  mov r3, ip, lsr #8
  ldrneh  r6, [r6, #14]
  strneh  r6, [r1, #14] @ movhi
  tst r3, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #12]
  strneh  r3, [r1, #12] @ movhi
  mov r3, ip, lsr #16
  tst r3, #255
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #10]
  strneh  r4, [r1, #10] @ movhi
  movs  ip, ip, lsr #24
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #8]
  strneh  r5, [r1, #8]  @ movhi
.L23017:
  add r2, r2, #1
  cmp lr, r2
  sub r0, r0, #64
  bne .L23071
  b .L22229
.L23070:
  rsb fp, r9, r4
  cmp fp, #0
  ble .L22229
  ldr r5, [sp, #4]
  movs  sl, fp, lsr #3
  add r1, r5, r9, asl #1
  beq .L22966
  ldr r3, .L23084+44
  ldr r6, [sp, #40]
  add r0, r0, r3
  mov lr, r1
  mov r7, r8
  mov r2, #0
.L22968:
  ldr ip, [r0, #68]
  cmp ip, #0
  beq .L22969
  tst ip, #255
  ldrneh  r3, [r6, #6]
  strneh  r3, [lr, #6]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r6, #4]
  mov r3, ip, lsr #16
  strneh  r4, [lr, #4]  @ movhi
  tst r3, #255
  ldrneh  r5, [r6, #2]
  strneh  r5, [lr, #2]  @ movhi
  movs  ip, ip, lsr #24
  ldrneh  ip, [r6, #0]
  strneh  ip, [lr, #0]  @ movhi
.L22969:
  ldr ip, [r7, #0]
  cmp ip, #0
  beq .L22978
  tst ip, #255
  ldrneh  r3, [r6, #14]
  strneh  r3, [lr, #14] @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r6, #12]
  mov r3, ip, lsr #16
  strneh  r4, [lr, #12] @ movhi
  tst r3, #255
  ldrneh  r5, [r6, #10]
  strneh  r5, [lr, #10] @ movhi
  movs  ip, ip, lsr #24
  ldrneh  ip, [r6, #8]
  strneh  ip, [lr, #8]  @ movhi
.L22978:
  add r2, r2, #1
  cmp sl, r2
  sub r7, r7, #64
  add lr, lr, #16
  add r6, r6, #16
  sub r0, r0, #64
  bne .L22968
  ldr lr, [sp, #40]
  mov r3, sl, asl #4
  rsb r2, sl, sl, asl #26
  add lr, lr, r3
  add r1, r1, r3
  add r8, r8, r2, asl #6
  str lr, [sp, #40]
.L22966:
  ands  ip, fp, #7
  beq .L22229
  cmp ip, #3
  ldrls r2, [r8, #4]
  bls .L23001
  ldr r2, [r8, #4]
  cmp r2, #0
  beq .L22991
  tst r2, #255
  ldrne r0, [sp, #40]
  mov r3, r2, lsr #8
  ldrneh  r0, [r0, #6]
  strneh  r0, [r1, #6]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  tst r3, #255
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #0]
  strneh  r5, [r1, #0]  @ movhi
.L22991:
  subs  ip, ip, #4
  ldr r2, [r8, #0]
  beq .L22229
  ldr r6, [sp, #40]
  add r1, r1, #8
  add r6, r6, #8
  str r6, [sp, #40]
.L23001:
  mov r3, #0
.L23002:
  movs  lr, r2, lsr #24
  ldrne r4, [sp, #40]
  mov r0, r3, asl #1
  ldrneh  r4, [r0, r4]
  add r3, r3, #1
  strneh  r4, [r0, r1]  @ movhi
  cmp ip, r3
  mov r2, r2, asl #8
  bhi .L23002
  b .L22229
.L23066:
  rsb r8, r9, r1
  cmp r8, #0
  ble .L22229
  ldr r2, [sp, #4]
  movs  r3, r8, lsr #3
  add r1, r2, r9, asl #1
  beq .L22541
  ldr lr, [sp, #40]
  mov ip, r1
  mov r6, r0
  mov r7, #0
.L22543:
  ldr r2, [r6, #0]
  cmp r2, #0
  beq .L22544
  tst r2, #15
  ldrneh  r4, [lr, #14]
  strneh  r4, [ip, #14] @ movhi
  tst r2, #240
  ldrneh  r5, [lr, #12]
  strneh  r5, [ip, #12] @ movhi
  tst r2, #3840
  ldrneh  r4, [lr, #10]
  strneh  r4, [ip, #10] @ movhi
  tst r2, #61440
  ldrneh  r5, [lr, #8]
  strneh  r5, [ip, #8]  @ movhi
  tst r2, #983040
  ldrneh  r4, [lr, #6]
  strneh  r4, [ip, #6]  @ movhi
  tst r2, #15728640
  ldrneh  r5, [lr, #4]
  strneh  r5, [ip, #4]  @ movhi
  tst r2, #251658240
  ldrneh  r4, [lr, #2]
  strneh  r4, [ip, #2]  @ movhi
  movs  r2, r2, lsr #28
  ldrneh  r5, [lr, #0]
  strneh  r5, [ip, #0]  @ movhi
.L22544:
  add r7, r7, #1
  cmp r7, r3
  sub r6, r6, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L22543
  ldr r6, [sp, #40]
  rsb r2, r3, r3, asl #27
  mov r3, r3, asl #4
  add r6, r6, r3
  add r1, r1, r3
  add r0, r0, r2, asl #5
  str r6, [sp, #40]
.L22541:
  ands  ip, r8, #7
  beq .L22229
  ldr r0, [r0, #0]
  mov r2, #0
.L22563:
  movs  lr, r0, lsr #28
  ldrne r4, [sp, #40]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r4]
  add r2, r2, #1
  strneh  r4, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, asl #4
  bne .L22563
  b .L22229
.L23068:
  rsb r8, r9, r1
  cmp r8, #0
  ble .L22229
  ldr r2, [sp, #4]
  movs  r7, r8, lsr #3
  add r1, r2, r9, asl #1
  beq .L22411
  ldr lr, [sp, #40]
  mov ip, r1
  mov r6, r0
  mov r2, #0
.L22413:
  ldr r3, [r6, #0]
  cmp r3, #0
  beq .L22414
  tst r3, #15
  ldrneh  r4, [lr, #0]
  strneh  r4, [ip, #0]  @ movhi
  tst r3, #240
  ldrneh  r5, [lr, #2]
  strneh  r5, [ip, #2]  @ movhi
  tst r3, #3840
  ldrneh  r4, [lr, #4]
  strneh  r4, [ip, #4]  @ movhi
  tst r3, #61440
  ldrneh  r5, [lr, #6]
  strneh  r5, [ip, #6]  @ movhi
  tst r3, #983040
  ldrneh  r4, [lr, #8]
  strneh  r4, [ip, #8]  @ movhi
  tst r3, #15728640
  ldrneh  r5, [lr, #10]
  strneh  r5, [ip, #10] @ movhi
  tst r3, #251658240
  ldrneh  r4, [lr, #12]
  strneh  r4, [ip, #12] @ movhi
  movs  r3, r3, lsr #28
  ldrneh  r5, [lr, #14]
  strneh  r5, [ip, #14] @ movhi
.L22414:
  add r2, r2, #1
  cmp r2, r7
  add r6, r6, #32
  add ip, ip, #16
  add lr, lr, #16
  bne .L22413
  ldr r6, [sp, #40]
  mov r3, r7, asl #4
  add r6, r6, r3
  add r1, r1, r3
  add r0, r0, r7, asl #5
  str r6, [sp, #40]
.L22411:
  ands  ip, r8, #7
  beq .L22229
  ldr r0, [r0, #0]
  mov r2, #0
.L22433:
  tst r0, #15
  ldrne lr, [sp, #40]
  mov r3, r2, asl #1
  ldrneh  lr, [r3, lr]
  add r2, r2, #1
  strneh  lr, [r3, r1]  @ movhi
  cmp r2, ip
  mov r0, r0, lsr #4
  bne .L22433
  b .L22229
.L23064:
  rsb fp, r9, r4
  cmp fp, #0
  ble .L22229
  ldr r5, [sp, #4]
  movs  sl, fp, lsr #3
  add r1, r5, r9, asl #1
  beq .L22746
  ldr r3, .L23084+48
  ldr r6, [sp, #40]
  add r0, r0, r3
  mov lr, r1
  mov r7, r2
  mov r8, #0
.L22748:
  ldr ip, [r7, #0]
  cmp ip, #0
  beq .L22749
  tst ip, #255
  ldrneh  r3, [r6, #0]
  strneh  r3, [lr, #0]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r6, #2]
  mov r3, ip, lsr #16
  strneh  r4, [lr, #2]  @ movhi
  tst r3, #255
  ldrneh  r5, [r6, #4]
  strneh  r5, [lr, #4]  @ movhi
  movs  ip, ip, lsr #24
  ldrneh  ip, [r6, #6]
  strneh  ip, [lr, #6]  @ movhi
.L22749:
  ldr ip, [r0, #-60]
  cmp ip, #0
  beq .L22758
  tst ip, #255
  ldrneh  r3, [r6, #8]
  strneh  r3, [lr, #8]  @ movhi
  mov r3, ip, lsr #8
  tst r3, #255
  ldrneh  r4, [r6, #10]
  mov r3, ip, lsr #16
  strneh  r4, [lr, #10] @ movhi
  tst r3, #255
  ldrneh  r5, [r6, #12]
  strneh  r5, [lr, #12] @ movhi
  movs  ip, ip, lsr #24
  ldrneh  ip, [r6, #14]
  strneh  ip, [lr, #14] @ movhi
.L22758:
  add r8, r8, #1
  cmp r8, sl
  add r7, r7, #64
  add lr, lr, #16
  add r6, r6, #16
  add r0, r0, #64
  bne .L22748
  ldr lr, [sp, #40]
  mov r3, sl, asl #4
  add lr, lr, r3
  add r1, r1, r3
  add r2, r2, sl, asl #6
  str lr, [sp, #40]
.L22746:
  ands  ip, fp, #7
  beq .L22229
  cmp ip, #3
  ldrls r3, [r2, #0]
  bls .L22781
  ldr r0, [r2, #0]
  cmp r0, #0
  beq .L22771
  tst r0, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r0, lsr #8
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r3, r0, lsr #16
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  movs  r0, r0, lsr #24
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
.L22771:
  subs  ip, ip, #4
  ldr r3, [r2, #4]
  beq .L22229
  ldr lr, [sp, #40]
  add r1, r1, #8
  add lr, lr, #8
  str lr, [sp, #40]
.L22781:
  mov r2, #0
.L22782:
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r0, r2, asl #1
  ldrneh  r4, [r0, r4]
  add r2, r2, #1
  strneh  r4, [r0, r1]  @ movhi
  cmp ip, r2
  mov r3, r3, lsr #8
  bhi .L22782
  b .L22229
.L22330:
  mov r3, ip, lsr #3
  mov r1, r3, asl #5
  ands  r3, ip, #7
  ldreq r3, [sp, #100]
  add ip, r0, r1
  bne .L23072
.L22379:
  movs  r0, lr, lsr #3
  beq .L22229
  mov r1, #0
  b .L22389
.L23073:
  ldr lr, [sp, #40]
  add ip, ip, #32
  add lr, lr, #16
  add r3, r3, #16
  str lr, [sp, #40]
.L22389:
  ldr r2, [ip, #0]
  cmp r2, #0
  beq .L22390
  tst r2, #15
  ldrne lr, [sp, #40]
  ldrneh  lr, [lr, #0]
  strneh  lr, [r3, #0]  @ movhi
  tst r2, #240
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #2]
  strneh  r4, [r3, #2]  @ movhi
  tst r2, #3840
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r3, #4]  @ movhi
  tst r2, #61440
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r3, #6]  @ movhi
  tst r2, #983040
  ldrne lr, [sp, #40]
  ldrneh  lr, [lr, #8]
  strneh  lr, [r3, #8]  @ movhi
  tst r2, #15728640
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #10]
  strneh  r4, [r3, #10] @ movhi
  tst r2, #251658240
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #12]
  strneh  r5, [r3, #12] @ movhi
  movs  r2, r2, lsr #28
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #14]
  strneh  r6, [r3, #14] @ movhi
.L22390:
  add r1, r1, #1
  cmp r1, r0
  bne .L23073
  b .L22229
.L22590:
  ands  r1, r0, #7
  mov r3, r0, lsr #3
  add r0, r2, r3, asl #6
  ldreq r1, [sp, #100]
  bne .L23074
.L22694:
  movs  lr, lr, lsr #3
  beq .L22229
  mov ip, #0
  b .L22723
.L23075:
  ldr r2, [sp, #40]
  add r0, r0, #64
  add r2, r2, #16
  add r1, r1, #16
  str r2, [sp, #40]
.L22723:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L22724
  tst r2, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
.L22724:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L22733
  tst r2, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #8]
  strneh  r3, [r1, #8]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #10]
  strneh  r4, [r1, #10] @ movhi
  tst r3, #255
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #12]
  strneh  r5, [r1, #12] @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #14]
  strneh  r6, [r1, #14] @ movhi
.L22733:
  add ip, ip, #1
  cmp ip, lr
  bne .L23075
  b .L22229
.L22810:
  ands  r2, r0, #7
  mov r3, r0, lsr #3
  sub r0, r8, r3, asl #6
  ldreq r1, [sp, #100]
  bne .L23076
.L22914:
  movs  lr, lr, lsr #3
  beq .L22229
  mov ip, #0
  b .L22943
.L23077:
  ldr r2, [sp, #40]
  sub r0, r0, #64
  add r2, r2, #16
  add r1, r1, #16
  str r2, [sp, #40]
.L22943:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L22944
  tst r2, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r1, #0]  @ movhi
.L22944:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L22953
  tst r2, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #14]
  strneh  r3, [r1, #14] @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #12]
  strneh  r4, [r1, #12] @ movhi
  tst r3, #255
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r1, #10] @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #8]
  strneh  r6, [r1, #8]  @ movhi
.L22953:
  add ip, ip, #1
  cmp ip, lr
  bne .L23077
  b .L22229
.L22460:
  mov r3, ip, lsr #3
  ands  r2, ip, #7
  sub r0, r0, r3, asl #5
  ldreq r3, [sp, #100]
  bne .L23078
.L22509:
  movs  r1, r1, lsr #3
  beq .L22229
  mov r2, #0
  b .L22519
.L23079:
  ldr ip, [sp, #40]
  sub r0, r0, #32
  add ip, ip, #16
  add r3, r3, #16
  str ip, [sp, #40]
.L22519:
  ldr ip, [r0, #0]
  cmp ip, #0
  beq .L22520
  tst ip, #15
  ldrne lr, [sp, #40]
  ldrneh  lr, [lr, #14]
  strneh  lr, [r3, #14] @ movhi
  tst ip, #240
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #12]
  strneh  r4, [r3, #12] @ movhi
  tst ip, #3840
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #10]
  strneh  r5, [r3, #10] @ movhi
  tst ip, #61440
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #8]
  strneh  r6, [r3, #8]  @ movhi
  tst ip, #983040
  ldrne lr, [sp, #40]
  ldrneh  lr, [lr, #6]
  strneh  lr, [r3, #6]  @ movhi
  tst ip, #15728640
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #4]
  strneh  r4, [r3, #4]  @ movhi
  tst ip, #251658240
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r3, #2]  @ movhi
  movs  ip, ip, lsr #28
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r3, #0]  @ movhi
.L22520:
  add r2, r2, #1
  cmp r2, r1
  bne .L23079
  b .L22229
.L23078:
  rsbs  r6, r2, #8
  ldr ip, [r0, #0]
  ldreq r3, [sp, #100]
  beq .L22512
  mov r3, r2, asl #2
  mov r3, ip, asl r3
  mov lr, #0
.L22513:
  movs  r5, r3, lsr #28
  ldrne r2, [sp, #40]
  mov ip, lr, asl #1
  ldrneh  r4, [ip, r2]
  ldrne r2, [sp, #100]
  add lr, lr, #1
  strneh  r4, [ip, r2]  @ movhi
  cmp lr, r6
  mov r3, r3, asl #4
  bne .L22513
  ldr r5, [sp, #40]
  mov r3, r6, asl #1
  ldr r6, [sp, #100]
  add r5, r5, r3
  str r5, [sp, #40]
  add r3, r6, r3
.L22512:
  sub r0, r0, #32
  b .L22509
.L23076:
  cmp r2, #3
  rsb ip, r2, #8
  bls .L22915
  cmp ip, #0
  ldr r1, [r0, #0]
  ldreq r1, [sp, #100]
  beq .L22919
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r3, r1, asl r3
  mov r1, #0
.L22920:
  movs  r5, r3, lsr #24
  ldrne r6, [sp, #40]
  mov r2, r1, asl #1
  ldrneh  r4, [r2, r6]
  ldrne r6, [sp, #100]
  add r1, r1, #1
  strneh  r4, [r2, r6]  @ movhi
  cmp r1, ip
  mov r3, r3, asl #8
  bne .L22920
  ldr r5, [sp, #40]
  mov r3, ip, asl #1
  ldr r6, [sp, #100]
  add r5, r5, r3
  str r5, [sp, #40]
  add r1, r6, r3
.L22919:
  sub r0, r0, #64
  b .L22914
.L23074:
  cmp r1, #3
  rsb ip, r1, #8
  bls .L22695
  cmp ip, #0
  ldr r2, [r0, #4]
  ldreq r1, [sp, #100]
  beq .L22699
  mov r3, r1, asl #3
  sub r3, r3, #32
  mov r3, r2, lsr r3
  mov r1, #0
.L22700:
  tst r3, #255
  ldrne r5, [sp, #40]
  mov r2, r1, asl #1
  ldrneh  r6, [r2, r5]
  ldrne r5, [sp, #100]
  add r1, r1, #1
  strneh  r6, [r2, r5]  @ movhi
  cmp ip, r1
  mov r3, r3, lsr #8
  bne .L22700
  mov r3, ip, asl #1
  ldr ip, [sp, #40]
  ldr r2, [sp, #100]
  add ip, ip, r3
  str ip, [sp, #40]
  add r1, r2, r3
.L22699:
  add r0, r0, #64
  b .L22694
.L23072:
  rsbs  r6, r3, #8
  ldr r0, [r0, r1]
  ldreq r3, [sp, #100]
  beq .L22382
  mov r3, r3, asl #2
  mov r0, r0, lsr r3
  mov r2, #0
.L22383:
  tst r0, #15
  ldrne r1, [sp, #40]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r1]
  ldrne r1, [sp, #100]
  add r2, r2, #1
  strneh  r4, [r3, r1]  @ movhi
  cmp r6, r2
  mov r0, r0, lsr #4
  bne .L22383
  ldr r5, [sp, #40]
  mov r3, r6, asl #1
  ldr r6, [sp, #100]
  add r5, r5, r3
  str r5, [sp, #40]
  add r3, r6, r3
.L22382:
  add ip, ip, #32
  b .L22379
.L22812:
  ldr lr, [sp, #120]
  rsb r0, ip, #8
  cmp lr, r0
  bge .L22815
  cmp lr, #0
  ble .L22229
  cmp ip, #3
  bls .L22818
  ldr r2, [sl, #0]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r2, r2, asl r3
  mov r1, #0
.L22821:
  movs  r0, r2, lsr #24
  ldrne r4, [sp, #40]
  mov r3, r1, asl #1
  ldrneh  r5, [r3, r4]
  ldr r6, [sp, #120]
  ldrne r4, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r3, r4]  @ movhi
  cmp r6, r1
  mov r2, r2, asl #8
  bne .L22821
  b .L22229
.L22592:
  ldr r5, [sp, #120]
  rsb r0, ip, #8
  cmp r5, r0
  bge .L22595
  cmp r5, #0
  ble .L22229
  cmp ip, #3
  bls .L22598
  ldr r2, [sl, #4]
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L22601:
  tst r1, #255
  ldrne r6, [sp, #40]
  mov r3, r2, asl #1
  ldrneh  ip, [r3, r6]
  ldr lr, [sp, #120]
  ldrne r6, [sp, #100]
  add r2, r2, #1
  strneh  ip, [r3, r6]  @ movhi
  cmp lr, r2
  mov r1, r1, lsr #8
  bne .L22601
  b .L22229
.L22332:
  ldr r5, [sp, #120]
  rsb ip, r3, #8
  cmp r5, ip
  bge .L22335
  cmp r5, #0
  ble .L22229
  ldr r2, [r0, r1]
  mov r3, r3, asl #2
  mov r0, r2, lsr r3
  mov r2, #0
.L22339:
  tst r0, #15
  ldrne r6, [sp, #40]
  mov r3, r2, asl #1
  ldrneh  ip, [r3, r6]
  ldr lr, [sp, #120]
  ldrne r6, [sp, #100]
  add r2, r2, #1
  strneh  ip, [r3, r6]  @ movhi
  cmp lr, r2
  mov r0, r0, lsr #4
  bne .L22339
  b .L22229
.L22462:
  ldr ip, [sp, #120]
  rsb lr, r6, #8
  cmp ip, lr
  bge .L22465
  cmp ip, #0
  ble .L22229
  ldr r2, [r0, #0]
  mov r3, r6, asl #2
  mov r0, r2, asl r3
  mov r2, #0
.L22469:
  movs  lr, r0, lsr #28
  ldrne r1, [sp, #40]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, r1]
  ldr r5, [sp, #120]
  ldrne r1, [sp, #100]
  add r2, r2, #1
  strneh  r4, [r3, r1]  @ movhi
  cmp r5, r2
  mov r0, r0, asl #4
  bne .L22469
  b .L22229
.L22915:
  subs  r6, ip, #4
  ldr r1, [r0, #4]
  ldreq r1, [sp, #100]
  beq .L22927
  mov r3, r2, asl #3
  sub r3, r3, #32
  mov r3, r1, asl r3
  mov r1, #0
.L22928:
  movs  r2, r3, lsr #24
  ldrne r4, [sp, #40]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r1, r6
  mov r3, r3, asl #8
  bne .L22928
  ldr r6, [sp, #40]
  mov r3, ip, asl #1
  ldr ip, [sp, #100]
  add r2, r6, r3
  sub r2, r2, #8
  add r3, ip, r3
  str r2, [sp, #40]
  sub r1, r3, #8
.L22927:
  ldr r2, [r0, #0]
  cmp r2, #0
  beq .L22933
  tst r2, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #6]
  strneh  r3, [r1, #6]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #4]
  strneh  r4, [r1, #4]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #2]
  strneh  r5, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #0]
  strneh  r6, [r1, #0]  @ movhi
.L22933:
  ldr ip, [sp, #40]
  add r1, r1, #8
  add ip, ip, #8
  sub r0, r0, #64
  str ip, [sp, #40]
  b .L22914
.L22695:
  subs  r6, ip, #4
  ldr r2, [r0, #0]
  ldreq r1, [sp, #100]
  beq .L22707
  mov r3, r1, asl #3
  mov r3, r2, lsr r3
  mov r1, #0
.L22708:
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r1, r6
  mov r3, r3, lsr #8
  bne .L22708
  ldr r6, [sp, #40]
  mov r3, ip, asl #1
  ldr ip, [sp, #100]
  add r2, r6, r3
  sub r2, r2, #8
  add r3, ip, r3
  str r2, [sp, #40]
  sub r1, r3, #8
.L22707:
  ldr r2, [r0, #4]
  cmp r2, #0
  beq .L22713
  tst r2, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #0]
  strneh  r3, [r1, #0]  @ movhi
  mov r3, r2, lsr #8
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r3, r2, lsr #16
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #4]
  strneh  r5, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r6, [sp, #40]
  ldrneh  r6, [r6, #6]
  strneh  r6, [r1, #6]  @ movhi
.L22713:
  ldr ip, [sp, #40]
  add r1, r1, #8
  add ip, ip, #8
  add r0, r0, #64
  str ip, [sp, #40]
  b .L22694
.L22595:
  cmp ip, #3
  bls .L22625
  cmp r0, #0
  ldr r2, [sl, #4]
  ldreq r7, [sp, #100]
  beq .L22629
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r1, r2, lsr r3
  mov r2, #0
.L22630:
  tst r1, #255
  ldrne lr, [sp, #40]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, lr]
  ldrne lr, [sp, #100]
  add r2, r2, #1
  strneh  r4, [r3, lr]  @ movhi
  cmp r0, r2
  mov r1, r1, lsr #8
  bne .L22630
  ldr r5, [sp, #40]
  mov r3, r0, asl #1
  ldr r6, [sp, #100]
  add r5, r5, r3
  str r5, [sp, #40]
  add r7, r3, r6
.L22629:
  ldr r6, [sp, #120]
  add sl, sl, #64
  rsb r8, r0, r6
  b .L22594
.L22335:
  cmp ip, #0
  ldr r2, [r6, #0]
  ldreq r7, [sp, #100]
  beq .L22345
  mov r3, r3, asl #2
  mov r3, r2, lsr r3
  mov r1, #0
.L22346:
  tst r3, #15
  ldrne r0, [sp, #40]
  mov r2, r1, asl #1
  ldrneh  r4, [r2, r0]
  ldrne r0, [sp, #100]
  add r1, r1, #1
  strneh  r4, [r2, r0]  @ movhi
  cmp ip, r1
  mov r3, r3, lsr #4
  bne .L22346
  ldr r5, [sp, #40]
  mov r3, ip, asl #1
  ldr lr, [sp, #100]
  add r5, r5, r3
  str r5, [sp, #40]
  add r7, r3, lr
.L22345:
  ldr r0, [sp, #120]
  add r6, r6, #32
  rsb r5, ip, r0
  b .L22334
.L22465:
  cmp lr, #0
  ldr r2, [r0, #0]
  ldreq r1, [sp, #100]
  beq .L22475
  mov r3, r6, asl #2
  mov r3, r2, asl r3
  mov ip, #0
.L22476:
  movs  r6, r3, lsr #28
  ldrne r1, [sp, #40]
  mov r2, ip, asl #1
  ldrneh  r4, [r2, r1]
  ldrne r1, [sp, #100]
  add ip, ip, #1
  strneh  r4, [r2, r1]  @ movhi
  cmp lr, ip
  mov r3, r3, asl #4
  bne .L22476
  ldr r5, [sp, #40]
  mov r3, lr, asl #1
  ldr r6, [sp, #100]
  add r5, r5, r3
  str r5, [sp, #40]
  add r1, r3, r6
.L22475:
  ldr ip, [sp, #120]
  sub r0, r0, #32
  rsb r8, lr, ip
  b .L22464
.L22815:
  cmp ip, #3
  bls .L22845
  cmp r0, #0
  ldr r2, [sl, #0]
  ldreq r7, [sp, #100]
  beq .L22849
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r3, r2, asl r3
  mov r1, #0
.L22850:
  movs  r2, r3, lsr #24
  ldrne r4, [sp, #40]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r0, r1
  mov r3, r3, asl #8
  bne .L22850
  ldr r6, [sp, #40]
  mov r3, r0, asl #1
  ldr ip, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #40]
  add r7, ip, r3
.L22849:
  ldr ip, [sp, #120]
  sub sl, sl, #64
  rsb r8, r0, ip
  b .L22814
.L23082:
  mov r8, #0
  b .L22312
.L23083:
  mov r8, #0
  b .L22277
.L23081:
  ldr r1, [sp, #32]
  b .L23046
.L23080:
  ldr lr, [sp, #28]
  b .L23044
.L22845:
  subs  lr, r0, #4
  ldr r2, [sl, #4]
  ldreq r1, [sp, #100]
  beq .L22857
  mov r3, ip, asl #3
  sub r3, r3, #32
  mov r3, r2, asl r3
  mov r1, #0
.L22858:
  movs  r2, r3, lsr #24
  ldrne r4, [sp, #40]
  mov r2, r1, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add r1, r1, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r1, lr
  mov r3, r3, asl #8
  bne .L22858
  ldr r6, [sp, #40]
  mov r3, r0, asl #1
  ldr ip, [sp, #100]
  add r2, r6, r3
  sub r2, r2, #8
  add r3, ip, r3
  str r2, [sp, #40]
  sub r1, r3, #8
.L22857:
  ldr r2, [sl, #0]
  cmp r2, #0
  beq .L22863
  tst r2, #255
  ldrne lr, [sp, #40]
  mov r3, r2, lsr #8
  ldrneh  lr, [lr, #6]
  strneh  lr, [r1, #6]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r1, #4]  @ movhi
  mov r3, r2, lsr #16
  tst r3, #255
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #2]
  strneh  r4, [r1, #2]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r5, [sp, #40]
  ldrneh  r5, [r5, #0]
  strneh  r5, [r1, #0]  @ movhi
.L22863:
  ldr r6, [sp, #40]
  add r7, r1, #8
  add r6, r6, #8
  str r6, [sp, #40]
  b .L22849
.L22625:
  subs  lr, r0, #4
  ldr r2, [sl, #0]
  ldreq r1, [sp, #100]
  beq .L22637
  mov r3, ip, asl #3
  mov r1, r2, lsr r3
  mov r2, #0
.L22638:
  tst r1, #255
  ldrne ip, [sp, #40]
  mov r3, r2, asl #1
  ldrneh  r4, [r3, ip]
  ldrne ip, [sp, #100]
  add r2, r2, #1
  strneh  r4, [r3, ip]  @ movhi
  cmp r2, lr
  mov r1, r1, lsr #8
  bne .L22638
  ldr r5, [sp, #40]
  mov r3, r0, asl #1
  ldr r6, [sp, #100]
  add r2, r5, r3
  sub r2, r2, #8
  add r3, r6, r3
  str r2, [sp, #40]
  sub r1, r3, #8
.L22637:
  ldr r2, [sl, #4]
  cmp r2, #0
  beq .L22643
  tst r2, #255
  ldrne ip, [sp, #40]
  mov r3, r2, lsr #8
  ldrneh  ip, [ip, #0]
  strneh  ip, [r1, #0]  @ movhi
  tst r3, #255
  ldrne lr, [sp, #40]
  mov r3, r2, lsr #16
  ldrneh  lr, [lr, #2]
  strneh  lr, [r1, #2]  @ movhi
  tst r3, #255
  ldrne r3, [sp, #40]
  ldrneh  r3, [r3, #4]
  strneh  r3, [r1, #4]  @ movhi
  movs  r2, r2, lsr #24
  ldrne r4, [sp, #40]
  ldrneh  r4, [r4, #6]
  strneh  r4, [r1, #6]  @ movhi
.L22643:
  ldr r5, [sp, #40]
  add r7, r1, #8
  add r5, r5, #8
  str r5, [sp, #40]
  b .L22629
.L22818:
  ldr lr, [sp, #120]
  mov r3, ip, asl #3
  ldr r1, [sl, #4]
  add r2, lr, ip
  sub r3, r3, #32
  cmp r2, #4
  mov r1, r1, asl r3
  bhi .L22825
  cmp lr, #0
  movne r2, #0
  beq .L22229
.L22841:
  movs  r5, r1, lsr #24
  ldrne r6, [sp, #40]
  mov r3, r2, asl #1
  ldrneh  ip, [r3, r6]
  ldr lr, [sp, #120]
  ldrne r6, [sp, #100]
  add r2, r2, #1
  strneh  ip, [r3, r6]  @ movhi
  cmp lr, r2
  mov r1, r1, asl #8
  bne .L22841
  b .L22229
.L22598:
  ldr r0, [sp, #120]
  ldr r3, [sl, #0]
  add r2, r0, ip
  mov r1, ip, asl #3
  cmp r2, #4
  mov r3, r3, lsr r1
  bhi .L22605
  cmp r0, #0
  movne r1, #0
  beq .L22229
.L22621:
  tst r3, #255
  ldrne r5, [sp, #40]
  mov r2, r1, asl #1
  ldrneh  r6, [r2, r5]
  ldr ip, [sp, #120]
  ldrne r5, [sp, #100]
  add r1, r1, #1
  strneh  r6, [r2, r5]  @ movhi
  cmp ip, r1
  mov r3, r3, lsr #8
  bne .L22621
  b .L22229
.L22825:
  rsbs  r2, ip, #4
  ldreq r3, [sp, #100]
  beq .L22830
  mov r0, #0
.L22831:
  movs  r3, r1, lsr #24
  ldrne r4, [sp, #40]
  mov r3, r0, asl #1
  ldrneh  r5, [r3, r4]
  ldrne r4, [sp, #100]
  add r0, r0, #1
  strneh  r5, [r3, r4]  @ movhi
  cmp r0, r2
  mov r1, r1, asl #8
  bne .L22831
  ldr r6, [sp, #40]
  mov r3, r2, asl #1
  ldr ip, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #40]
  add r3, r3, ip
.L22830:
  ldr lr, [sp, #120]
  subs  ip, lr, r2
  ldr r2, [sl, #0]
  beq .L22229
  mov r0, #0
.L22837:
  movs  r1, r2, lsr #24
  ldrne r4, [sp, #40]
  mov r1, r0, asl #1
  ldrneh  r4, [r1, r4]
  add r0, r0, #1
  strneh  r4, [r1, r3]  @ movhi
  cmp r0, ip
  mov r2, r2, asl #8
  bne .L22837
  b .L22229
.L22605:
  rsbs  r1, ip, #4
  ldreq ip, [sp, #100]
  beq .L22610
  mov r0, #0
.L22611:
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r2, r0, asl #1
  ldrneh  r5, [r2, r4]
  ldrne r4, [sp, #100]
  add r0, r0, #1
  strneh  r5, [r2, r4]  @ movhi
  cmp r0, r1
  mov r3, r3, lsr #8
  bne .L22611
  ldr r6, [sp, #40]
  mov r3, r1, asl #1
  ldr lr, [sp, #100]
  add r6, r6, r3
  str r6, [sp, #40]
  add ip, r3, lr
.L22610:
  ldr r2, [sp, #120]
  ldr r3, [sl, #4]
  subs  r0, r2, r1
  beq .L22229
  mov r1, #0
.L22617:
  tst r3, #255
  ldrne r4, [sp, #40]
  mov r2, r1, asl #1
  ldrneh  r4, [r2, r4]
  add r1, r1, #1
  strneh  r4, [r2, ip]  @ movhi
  cmp r1, r0
  mov r3, r3, lsr #8
  bne .L22617
  b .L22229
  .size render_scanline_obj_copy_bitmap_1D, .-render_scanline_obj_copy_bitmap_1D
  .align  2
  .global render_scanline_window_bitmap
  .type render_scanline_window_bitmap, %function
render_scanline_window_bitmap:
  @ args = 0, pretend = 0, frame = 20
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr lr, .L23662
  mov r2, r1, lsr #13
  ldrh  ip, [lr, #74]
  ldr r3, .L23662+4
  and ip, ip, #63
  sub sp, sp, #32
  mov r6, r1
  sub r2, r2, #1
  and r1, r1, #7
  str ip, [sp, #12]
  add r9, r3, r1, asl #2
  mov r7, r0
  ldrh  ip, [lr, #6]
  ldrh  sl, [lr, #80]
  cmp r2, #6
  ldrls pc, [pc, r2, asl #2]
  b .L23576
  .p2align 2
.L23095:
  .word .L23088
  .word .L23089
  .word .L23090
  .word .L23091
  .word .L23092
  .word .L23093
  .word .L23094
.L23089:
  ldrh  r3, [lr, #70]
  ldr r4, .L23662
  and r1, r3, #255
  mov r0, r3, lsr #8
  cmp r0, r1
  ldrh  r2, [lr, #72]
  bls .L23117
  cmp ip, r0
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  bne .L23125
.L23580:
  cmp r1, #227
  bhi .L23125
.L23121:
  mov r4, #240
  mov r5, r4
.L23133:
  mov r0, #0
  mov r1, r5
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23134:
  cmp r5, r4
  beq .L23114
  mov r0, r5
  mov r3, r8
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23114:
  cmp r4, #240
  beq .L23576
  ldr r3, [sp, #12]
  mov r0, r4
  mov r2, r7
.L23623:
  mov r1, #240
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23576:
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L23088:
  ldrh  r3, [lr, #68]
  ldr r4, .L23662
  and r2, r3, #255
  mov r1, r3, lsr #8
  cmp r1, r2
  ldrh  r0, [lr, #72]
  bls .L23096
  cmp ip, r1
  movls r3, #0
  movhi r3, #1
  cmp ip, r2
  orrls r3, r3, #1
  cmp r3, #0
  beq .L23578
.L23104:
  cmp r1, #227
  bhi .L23121
  ldrh  r3, [r4, #64]
  and r8, r0, #63
  and r4, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r5, r3
  movcs r5, #240
  cmp r4, #240
  bhi .L23645
.L23124:
  cmp r5, r4
  bls .L23128
  cmp r4, #0
  bne .L23646
.L23130:
  mov r0, r4
  ldr r3, [sp, #12]
  mov r2, r7
  mov r1, r5
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  cmp r5, #240
  movne r0, r5
  movne r2, r7
  movne r3, r8
  bne .L23623
  b .L23576
.L23094:
  ldrh  r3, [lr, #68]
  ldr r2, .L23662
  and r1, r3, #255
  mov r0, r3, lsr #8
  cmp r0, r1
  ldrh  r4, [lr, #72]
  bls .L23360
  cmp ip, r0
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L23639
.L23368:
  cmp r0, #227
  bls .L23647
.L23364:
  mov r8, #240
  mov fp, r8
.L23367:
  ldrh  r3, [lr, #70]
  ldr r0, .L23662
  and r1, r3, #255
  mov r2, r3, lsr #8
  cmp r2, r1
  bls .L23371
  cmp ip, r2
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L23640
.L23379:
  cmp r2, #227
  bls .L23648
.L23375:
  mov r5, #240
  mov r4, r5
.L23378:
  cmp fp, r8
  bls .L23382
  cmp r8, #0
  bne .L23649
.L23384:
  cmp r4, #240
  beq .L23386
  cmp r4, r5
  bhi .L23650
  cmp r4, #0
  beq .L23426
  cmp r8, #0
  beq .L23428
  cmp r8, r4
  bcs .L23426
.L23428:
  cmp fp, r4
  bcs .L23437
  mov r0, r8
  mov r1, fp
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23439
  mov r0, #4
  mov r1, r8
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
.L23426:
  cmp r4, r5
  beq .L23443
  cmp r8, r4
  bls .L23445
  cmp r8, r5
  bcs .L23443
  cmp fp, r5
  ldrcc r3, [sp, #28]
  ldrcs r3, [sp, #28]
  movcc r0, r8
  movcc r1, fp
  movcs r0, r8
  movcs r1, r5
.L23612:
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23443:
  cmp r5, #240
  beq .L23418
  cmp r8, r5
  bls .L23454
  cmp r8, #239
  bhi .L23418
  cmp fp, #239
  bhi .L23457
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23459
  mov r1, r8
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23422
.L23093:
  ldrh  r3, [lr, #70]
  ldr r4, .L23662
  and r1, r3, #255
  mov r0, r3, lsr #8
  cmp r0, r1
  ldrh  r2, [lr, #72]
  bls .L23330
  cmp ip, r0
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L23605
.L23338:
  cmp r0, #227
  bls .L23651
.L23334:
  mov r4, #240
  mov r5, r4
.L23349:
  mov r0, #0
  mov r1, r5
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23350:
  ands  r8, r6, #64
  beq .L23351
  mov r0, #4
  mov r1, #0
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
.L23353:
  cmp r4, r5
  beq .L23354
.L23642:
  mov r0, r5
  mov r3, fp
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23354:
  cmp r4, #240
  beq .L23356
  ldr r3, [sp, #12]
  mov r0, r4
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23356:
  cmp r8, #0
  movne r1, r4
  beq .L23652
.L23626:
  mov r3, r7
  mov r0, #4
  mov r2, #240
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_copy_bitmap_1D
.L23092:
  ldrh  r3, [lr, #68]
  ldr r4, .L23662
  and r1, r3, #255
  mov r0, r3, lsr #8
  cmp r0, r1
  ldrh  r2, [lr, #72]
  bls .L23300
  cmp ip, r0
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L23603
.L23308:
  cmp r0, #227
  bls .L23653
.L23304:
  mov r4, #240
  mov r5, r4
.L23319:
  mov r0, #0
  mov r1, r5
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23320:
  ands  r8, r6, #64
  beq .L23321
  mov r0, #4
  mov r1, #0
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
.L23323:
  cmp r5, r4
  bne .L23642
  b .L23354
.L23090:
  ldrh  r3, [lr, #68]
  ldr r2, .L23662
  and r1, r3, #255
  mov r0, r3, lsr #8
  cmp r0, r1
  ldrh  r4, [lr, #72]
  bls .L23138
  cmp ip, r0
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L23635
.L23146:
  cmp r0, #227
  bls .L23654
.L23142:
  mov r5, #240
  mov fp, r5
.L23145:
  ldrh  r3, [lr, #70]
  ldr r0, .L23662
  and r1, r3, #255
  mov r2, r3, lsr #8
  cmp r2, r1
  bls .L23149
  cmp ip, r2
  movls r3, #0
  movhi r3, #1
  cmp ip, r1
  orrls r3, r3, #1
  cmp r3, #0
  beq .L23636
.L23157:
  cmp r2, #227
  bls .L23655
.L23153:
  mov r8, #240
  mov r4, r8
.L23156:
  cmp fp, r5
  bls .L23160
  cmp r5, #0
  bne .L23656
.L23162:
  cmp r4, #240
  beq .L23164
  cmp r4, r8
  bls .L23166
  cmp r8, #0
  beq .L23168
  cmp r5, #0
  beq .L23170
  cmp r5, r8
  bcs .L23168
  cmp fp, r8
  movcc r0, r5
  movcc r1, fp
  movcs r0, r5
  movcs r1, r8
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23168:
  cmp r5, r8
  bls .L23177
  cmp r5, r4
  bcs .L23179
  cmp fp, r4
  ldrcc r3, [sp, #12]
  ldrcs r3, [sp, #12]
  movcc r0, r5
  movcc r1, fp
  movcs r0, r5
  movcs r1, r4
.L23585:
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23179:
  cmp r5, r4
  bls .L23186
  cmp r5, #239
  bhi .L23188
  cmp fp, #239
  movls r0, r5
  bls .L23589
  ldr r3, [sp, #20]
  mov r0, r5
  mov r1, #240
.L23588:
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23188:
  cmp fp, #240
  beq .L23576
.L23192:
  ldr r3, [sp, #16]
  mov r0, fp
  mov r2, r7
  b .L23623
.L23091:
  mov r1, #240
  ldr r3, [sp, #12]
  mov r0, #0
  mov r2, r7
  str sl, [sp, #4]
  str r9, [sp, #8]
  str r6, [sp, #0]
  bl  render_scanline_conditional_bitmap
  ands  r1, r6, #64
  beq .L23624
  mov r3, r7
  mov r0, #4
  mov r1, #0
  mov r2, #240
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_copy_bitmap_1D
.L23117:
  cmp ip, r0
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  beq .L23580
.L23125:
  cmp r0, #227
  bhi .L23121
  ldrh  r3, [r4, #66]
  mov r2, r2, lsr #8
  and r4, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r5, r3
  movcs r5, #240
  cmp r4, #240
  and r8, r2, #63
  bls .L23124
.L23645:
  mov r4, #240
  b .L23124
.L23300:
  cmp ip, r0
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L23308
.L23603:
  cmp r1, #227
  bls .L23304
  b .L23308
.L23149:
  cmp ip, r2
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L23157
.L23636:
  cmp r1, #227
  bls .L23153
  b .L23157
.L23138:
  cmp ip, r0
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L23146
.L23635:
  cmp r1, #227
  bls .L23142
  b .L23146
.L23371:
  cmp ip, r2
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L23379
.L23640:
  cmp r1, #227
  bls .L23375
  b .L23379
.L23330:
  cmp ip, r0
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L23338
.L23605:
  cmp r1, #227
  bls .L23334
  b .L23338
.L23096:
  cmp ip, r1
  movcc r3, #0
  movcs r3, #1
  cmp ip, r2
  movcs r3, #0
  cmp r3, #0
  bne .L23104
.L23578:
  cmp r2, #227
  bls .L23121
  b .L23104
.L23360:
  cmp ip, r0
  movcc r3, #0
  movcs r3, #1
  cmp ip, r1
  movcs r3, #0
  cmp r3, #0
  bne .L23368
.L23639:
  cmp r1, #227
  bls .L23364
  b .L23368
.L23652:
  mov r1, r4
.L23624:
  mov r3, r7
  mov r0, #4
  mov r2, #240
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_copy_bitmap_2D
.L23382:
  cmp r4, #240
  beq .L23472
  cmp r4, r5
  bls .L23474
  cmp r5, #0
  beq .L23476
  cmp fp, r5
  bcs .L23478
  cmp fp, #0
  movne r0, #0
  movne r1, fp
  bne .L23615
.L23476:
  cmp fp, r4
  bcs .L23481
  cmp fp, r5
  bhi .L23657
.L23483:
  cmp fp, #239
  bhi .L23489
  cmp fp, r4
  movhi r0, r4
  movhi r1, fp
  bhi .L23617
.L23491:
  cmp fp, r8
  beq .L23519
  mov r0, fp
  ldr r3, [sp, #24]
  mov r1, r8
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23519:
  cmp r4, #240
  beq .L23521
  cmp r4, r5
  bls .L23523
  cmp r5, #0
  beq .L23525
  cmp r8, #0
  beq .L23527
  cmp r8, r5
  bcs .L23525
  cmp r5, #240
  movhi r0, r8
  movhi r1, #240
  movls r0, r8
  movls r1, r5
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23525:
  cmp r8, r5
  bls .L23534
  cmp r8, r4
  bcc .L23658
.L23536:
  cmp r8, r4
  bls .L23542
  cmp r8, #239
  bhi .L23576
  ldr r3, [sp, #28]
  mov r0, r8
  mov r2, r7
  b .L23623
.L23160:
  cmp r4, #240
  beq .L23224
  cmp r4, r8
  bls .L23226
  cmp r8, #0
  beq .L23228
  cmp fp, r8
  bcs .L23230
  cmp fp, #0
  movne r0, #0
  movne r1, fp
  bne .L23591
.L23228:
  cmp fp, r4
  bcs .L23233
  cmp fp, r8
  movhi r0, r8
  movhi r1, fp
  bhi .L23592
.L23235:
  cmp fp, #239
  bhi .L23237
  cmp fp, r4
  movhi r0, r4
  movhi r1, fp
  bhi .L23595
.L23239:
  cmp fp, r5
  beq .L23256
  mov r0, fp
  ldr r3, [sp, #16]
  mov r1, r5
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23256:
  cmp r4, #240
  beq .L23258
  cmp r4, r8
  bls .L23260
  cmp r8, #0
  beq .L23262
  cmp r5, #0
  beq .L23264
  cmp r5, r8
  bcs .L23262
  cmp r8, #240
  movhi r0, r5
  movhi r1, #240
  movls r0, r5
  movls r1, r8
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23262:
  cmp r5, r8
  bls .L23271
  cmp r5, r4
  ldrcc r3, [sp, #12]
  movcc r0, r5
  bcc .L23599
.L23273:
  cmp r5, r4
  bls .L23275
  cmp r5, #239
  bhi .L23576
  ldr r3, [sp, #20]
  mov r0, r5
  mov r2, r7
  b .L23623
.L23351:
  mov r0, #4
  mov r1, r8
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23353
.L23321:
  mov r0, #4
  mov r1, r8
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23323
.L23653:
  ldrh  r3, [r4, #64]
  and fp, r2, #63
  and r4, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r5, r3
  movcs r5, #240
  cmp r4, #240
  movhi r4, #240
  cmp r5, r4
  bhi .L23644
  cmp r5, #0
  bne .L23319
  b .L23320
.L23655:
  ldrh  r3, [r0, #66]
  mov r2, r4, lsr #8
  and r8, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r4, r3
  movcs r4, #240
  cmp r8, #240
  and r2, r2, #63
  movhi r8, #240
  str r2, [sp, #20]
  b .L23156
.L23648:
  ldrh  r3, [r0, #66]
  mov r2, r4, lsr #8
  and r5, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r4, r3
  movcs r4, #240
  cmp r5, #240
  and r2, r2, #63
  movhi r5, #240
  str r2, [sp, #28]
  b .L23378
.L23647:
  ldrh  r3, [r2, #64]
  and r2, r4, #63
  and r8, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc fp, r3
  movcs fp, #240
  cmp r8, #240
  movhi r8, #240
  str r2, [sp, #24]
  b .L23367
.L23651:
  ldrh  r3, [r4, #66]
  mov r2, r2, lsr #8
  and r4, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc r5, r3
  movcs r5, #240
  cmp r4, #240
  movhi r4, #240
  cmp r5, r4
  and fp, r2, #63
  bhi .L23644
  cmp r5, #0
  bne .L23349
  b .L23350
.L23654:
  ldrh  r3, [r2, #64]
  and r2, r4, #63
  and r5, r3, #255
  mov r3, r3, lsr #8
  cmp r3, #240
  movcc fp, r3
  movcs fp, #240
  cmp r5, #240
  movhi r5, #240
  str r2, [sp, #16]
  b .L23145
.L23650:
  cmp r5, #0
  beq .L23390
  cmp r8, #0
  beq .L23392
  cmp r8, r5
  bcs .L23390
  cmp fp, r5
  movcc r0, r8
  movcc r1, fp
  movcs r0, r8
  movcs r1, r5
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23390:
  cmp r8, r5
  bls .L23399
  cmp r8, r4
  bcs .L23401
  cmp fp, r4
  bcs .L23403
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23405
  mov r0, #4
  mov r1, r8
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
.L23401:
  cmp r8, r4
  bls .L23416
  cmp r8, #239
  bhi .L23418
  cmp fp, #239
  movls r0, r8
  movhi r0, r8
  bhi .L23613
.L23614:
  ldr r3, [sp, #28]
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23422:
  ldr r3, [sp, #24]
  mov r0, fp
  mov r2, r7
  b .L23623
.L23166:
  cmp r4, #0
  beq .L23196
  cmp r5, #0
  beq .L23198
  cmp r5, r4
  bcs .L23196
.L23198:
  cmp fp, r4
  movcc r0, r5
  movcc r1, fp
  movcs r0, r5
  movcs r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23196:
  cmp r4, r8
  beq .L23205
  cmp r5, r4
  bls .L23207
  cmp r5, r8
  bcs .L23205
  cmp fp, r8
  ldrcc r3, [sp, #20]
  ldrcs r3, [sp, #20]
  movcc r0, r5
  movcc r1, fp
  movcs r0, r5
  movcs r1, r8
.L23587:
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23205:
  cmp r8, #240
  beq .L23188
  cmp r5, r8
  bls .L23216
  cmp r5, #239
  bhi .L23188
  cmp fp, #239
  movls r0, r5
  ldrls r3, [sp, #12]
  bls .L23590
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, #240
  b .L23588
.L23649:
  mov r0, #0
  mov r1, r8
  mov r2, r7
  ldr r3, [sp, #24]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23384
.L23656:
  mov r0, #0
  mov r1, r5
  mov r2, r7
  ldr r3, [sp, #16]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23162
.L23472:
  cmp fp, #0
  bne .L23659
.L23515:
  ands  r1, r6, #64
  beq .L23517
  mov r0, #4
  mov r1, #0
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23491
.L23224:
  cmp fp, #0
  beq .L23239
  mov r0, #0
  mov r1, fp
.L23596:
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23239
.L23644:
  cmp r4, #0
  bne .L23660
.L23343:
  ldr r3, [sp, #12]
  mov r0, r4
  mov r1, r5
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23345
  mov r1, r4
  mov r0, #4
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
.L23347:
  cmp r5, #240
  movne r0, r5
  movne r2, r7
  movne r3, fp
  bne .L23623
  b .L23576
.L23128:
  cmp r5, #0
  bne .L23133
  b .L23134
.L23386:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23470
  mov r1, r8
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
.L23418:
  cmp fp, #240
  bne .L23422
  b .L23576
.L23345:
  mov r1, r4
  mov r0, #4
  mov r2, r5
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23347
.L23663:
  .align  2
.L23662:
  .word io_registers
  .word bitmap_mode_renderers-12
.L23523:
  cmp r4, #0
  beq .L23545
  cmp r8, #0
  beq .L23547
  cmp r8, r4
  bcc .L23547
.L23545:
  cmp r4, r5
  beq .L23554
  cmp r8, r4
  bls .L23556
  cmp r8, r5
  bcs .L23554
  cmp r5, #240
  ldrhi r3, [sp, #28]
  movhi r0, r8
  ldrls r3, [sp, #28]
  movls r0, r8
  bls .L23621
.L23622:
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23561:
  cmp r8, r5
  bls .L23565
  cmp r8, #239
  bhi .L23576
  mov r1, #240
  ldr r3, [sp, #12]
  mov r0, r8
  mov r2, r7
  str sl, [sp, #4]
  str r9, [sp, #8]
  str r6, [sp, #0]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  moveq r1, r8
  beq .L23624
  mov r1, r8
  b .L23626
.L23260:
  cmp r4, #0
  beq .L23278
  cmp r5, #0
  beq .L23280
  cmp r5, r4
  bcc .L23280
.L23278:
  cmp r4, r8
  beq .L23283
  cmp r5, r4
  bls .L23285
  cmp r5, r8
  bcs .L23283
  cmp r8, #240
  ldrhi r3, [sp, #20]
  movhi r0, r5
  ldrls r3, [sp, #20]
  movls r0, r5
  bls .L23600
.L23601:
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23290:
  cmp r5, r8
  bls .L23294
  cmp r5, #239
  bhi .L23576
  ldr r3, [sp, #12]
  mov r0, r5
  mov r2, r7
  b .L23623
.L23474:
  cmp r4, #0
  beq .L23493
  cmp fp, r4
  bcs .L23495
  cmp fp, #0
  bne .L23661
.L23493:
  cmp r4, r5
  beq .L23502
  cmp fp, r5
  bcs .L23504
  cmp fp, r4
  movhi r0, r4
  movhi r1, fp
  bhi .L23616
.L23502:
  cmp r5, #240
  beq .L23491
  cmp fp, #239
  bhi .L23508
  cmp fp, r5
  bls .L23491
  mov r0, r5
  mov r1, fp
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23511
  mov r0, #4
  mov r1, r5
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23491
.L23226:
  cmp r4, #0
  beq .L23241
  cmp fp, r4
  bcs .L23243
  cmp fp, #0
  movne r0, #0
  movne r1, fp
  bne .L23593
.L23241:
  cmp r4, r8
  beq .L23246
  cmp fp, r8
  bcs .L23248
  cmp fp, r4
  movhi r0, r4
  movhi r1, fp
  bhi .L23594
.L23246:
  cmp r8, #240
  beq .L23239
  cmp fp, #239
  bhi .L23252
  cmp fp, r8
  movhi r0, r8
  movhi r1, fp
  bls .L23239
  b .L23596
.L23521:
  cmp r8, #240
  beq .L23572
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, r4
  mov r2, r7
  str sl, [sp, #4]
  str r9, [sp, #8]
  str r6, [sp, #0]
  bl  render_scanline_conditional_bitmap
.L23572:
  tst r6, #64
  beq .L23574
  mov r1, r8
  mov r2, r4
  mov r3, r7
  mov r0, #4
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_copy_bitmap_1D
.L23258:
  cmp r5, #240
  beq .L23576
  mov r0, r5
  mov r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23576
.L23392:
  cmp fp, r5
  movcc r0, r8
  movcc r1, fp
  movcs r0, r8
  movcs r1, r5
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23399:
  cmp fp, r4
  bcs .L23409
  cmp fp, r5
  bls .L23401
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23412
  mov r1, r5
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23401
.L23170:
  cmp fp, r8
  movcc r0, r5
  movcc r1, fp
  movcs r0, r5
  movcs r1, r8
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23177:
  cmp fp, r4
  bcs .L23183
  cmp fp, r8
  bls .L23179
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, fp
  b .L23585
.L23264:
  cmp r8, #240
  movhi r0, r5
  movhi r1, #240
  movls r0, r5
  movls r1, r8
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23271:
  ldr r3, [sp, #12]
  mov r0, r8
.L23599:
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23273
.L23291:
  ldr r3, [sp, #20]
  mov r0, r4
.L23600:
  mov r1, r8
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23283:
  cmp r8, #240
  bne .L23290
  b .L23576
.L23562:
  ldr r3, [sp, #28]
  mov r0, r4
.L23621:
  mov r1, r5
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23554:
  cmp r5, #240
  bne .L23561
  b .L23576
.L23646:
  mov r0, #0
  mov r1, r4
  mov r2, r7
  mov r3, r8
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23130
.L23660:
  mov r0, #0
  mov r1, r4
  mov r2, r7
  mov r3, fp
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23343
.L23527:
  cmp r5, #240
  movhi r0, r8
  movhi r1, #240
  movls r0, r8
  movls r1, r5
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
.L23534:
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23540
  mov r1, r5
  mov r0, #4
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23536
.L23416:
  cmp fp, #239
  bhi .L23423
  cmp fp, r4
  bls .L23422
  mov r0, r4
  b .L23614
.L23186:
  cmp fp, #239
  bhi .L23193
  cmp fp, r4
  bls .L23192
  mov r0, r4
.L23589:
  ldr r3, [sp, #20]
.L23590:
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23192
.L23237:
  mov r0, r4
  mov r1, #240
.L23595:
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23239
.L23489:
  mov r0, r4
  mov r1, #240
.L23617:
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23491
.L23233:
  mov r0, r8
  mov r1, r4
.L23592:
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23235
.L23216:
  cmp fp, #239
  bhi .L23221
  cmp fp, r8
  movhi r0, r8
  ldrhi r3, [sp, #12]
  bls .L23192
  b .L23590
.L23445:
  cmp fp, r5
  bcs .L23450
  cmp fp, r4
  bls .L23443
  ldr r3, [sp, #28]
  mov r0, r4
  mov r1, fp
  b .L23612
.L23454:
  cmp fp, #239
  bhi .L23463
  cmp fp, r5
  bls .L23422
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, fp
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23466
  mov r1, r5
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23422
.L23207:
  cmp fp, r8
  bcs .L23212
  cmp fp, r4
  bls .L23205
  ldr r3, [sp, #20]
  mov r0, r4
  mov r1, fp
  b .L23587
.L23164:
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, fp
  b .L23588
.L23574:
  mov r1, r8
  mov r2, r4
  mov r3, r7
  mov r0, #4
  add sp, sp, #32
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  b render_scanline_obj_copy_bitmap_2D
.L23517:
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23491
.L23504:
  mov r0, r4
  mov r1, r5
.L23616:
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23502
.L23248:
  mov r0, r4
  mov r1, r8
.L23594:
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23246
.L23285:
  cmp r8, #240
  bls .L23291
  cmp r4, #239
  bhi .L23290
  ldr r3, [sp, #20]
  mov r0, r4
  b .L23601
.L23556:
  cmp r5, #240
  bls .L23562
  cmp r4, #239
  bhi .L23561
  ldr r3, [sp, #28]
  mov r0, r4
  b .L23622
.L23423:
  mov r0, r4
.L23613:
  ldr r3, [sp, #28]
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23418
.L23540:
  mov r1, r5
  mov r0, #4
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23536
.L23481:
  mov r0, r5
  mov r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23487
  mov r0, #4
  mov r1, r5
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23483
.L23542:
  ldr r3, [sp, #28]
  mov r0, r4
  mov r2, r7
  b .L23623
.L23275:
  ldr r3, [sp, #20]
  mov r0, r4
  mov r2, r7
  b .L23623
.L23294:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r2, r7
  b .L23623
.L23565:
  mov r1, #240
  ldr r3, [sp, #12]
  mov r0, r5
  mov r2, r7
  str sl, [sp, #4]
  str r9, [sp, #8]
  str r6, [sp, #0]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  movne r1, r5
  moveq r1, r5
  beq .L23624
  b .L23626
.L23478:
  mov r0, #0
  mov r1, r5
.L23615:
  mov r2, r7
  ldr r3, [sp, #28]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23476
.L23243:
  mov r0, #0
  mov r1, r4
.L23593:
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23241
.L23230:
  mov r0, #0
  mov r1, r8
.L23591:
  mov r2, r7
  ldr r3, [sp, #20]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23228
.L23547:
  mov r0, r8
  mov r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23552
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23545
.L23280:
  mov r0, r5
  mov r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23278
.L23659:
  mov r0, #0
  mov r1, fp
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  b .L23515
.L23409:
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23414
  mov r1, r5
  mov r0, #4
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23401
.L23183:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, r4
  b .L23585
.L23437:
  mov r0, r8
  mov r1, r4
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23441
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23426
.L23252:
  mov r0, r8
  mov r1, #240
  b .L23596
.L23470:
  mov r1, r8
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23418
.L23508:
  mov r0, r5
  mov r1, #240
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23513
  mov r0, #4
  mov r1, r5
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23491
.L23657:
  mov r0, r5
  mov r1, fp
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23485
  mov r0, #4
  mov r1, r5
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23483
.L23193:
  ldr r3, [sp, #20]
  mov r0, r4
  mov r1, #240
  b .L23588
.L23495:
  mov r1, r4
  mov r0, #0
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  ands  r1, r6, #64
  beq .L23500
  mov r0, #4
  mov r1, #0
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23493
.L23487:
  mov r0, #4
  mov r1, r5
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23483
.L23552:
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23545
.L23221:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, #240
  b .L23588
.L23212:
  ldr r3, [sp, #20]
  mov r0, r4
  mov r1, r8
  b .L23587
.L23463:
  ldr r3, [sp, #12]
  mov r0, r5
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23468
  mov r1, r5
  mov r0, #4
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23418
.L23450:
  ldr r3, [sp, #28]
  mov r0, r4
  mov r1, r5
  b .L23612
.L23658:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23538
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23536
.L23403:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, r4
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23407
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23401
.L23439:
  mov r0, #4
  mov r1, r8
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23426
.L23414:
  mov r1, r5
  mov r0, #4
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23401
.L23441:
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23426
.L23513:
  mov r0, #4
  mov r1, r5
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23491
.L23457:
  ldr r3, [sp, #12]
  mov r0, r8
  mov r1, #240
  mov r2, r7
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  tst r6, #64
  beq .L23461
  mov r1, r8
  mov r0, #4
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23418
.L23661:
  mov r1, fp
  mov r0, #0
  mov r2, r7
  ldr r3, [sp, #12]
  stmia sp, {r6, sl}  @ phole stm
  str r9, [sp, #8]
  bl  render_scanline_conditional_bitmap
  ands  r1, r6, #64
  beq .L23498
  mov r0, #4
  mov r1, #0
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_1D
  b .L23493
.L23485:
  mov r0, #4
  mov r1, r5
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23483
.L23412:
  mov r1, r5
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23401
.L23500:
  mov r0, #4
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23493
.L23511:
  mov r0, #4
  mov r1, r5
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23491
.L23468:
  mov r1, r5
  mov r0, #4
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23418
.L23461:
  mov r1, r8
  mov r0, #4
  mov r2, #240
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23418
.L23405:
  mov r0, #4
  mov r1, r8
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23401
.L23538:
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23536
.L23498:
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23493
.L23407:
  mov r0, #4
  mov r1, r8
  mov r2, r4
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23401
.L23459:
  mov r1, r8
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23422
.L23466:
  mov r1, r5
  mov r0, #4
  mov r2, fp
  mov r3, r7
  bl  render_scanline_obj_copy_bitmap_2D
  b .L23422
  .size render_scanline_window_bitmap, .-render_scanline_window_bitmap
  .align  2
  .global update_scanline
  .type update_scanline, %function
update_scanline:
  @ args = 0, pretend = 0, frame = 12
  @ frame_needed = 0, uses_anonymous_args = 0
  stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  ldr r2, .L23760
  ldr r0, .L23760+4
  ldr r9, .L23760+8
  ldr r3, [r0, #0]
  ldr r1, [r2, #0]
  cmp r3, #0
  ldr r2, [r1, #20]
  ldrh  fp, [r9, #0]
  ldrh  r1, [r1, #16]
  ldrh  r3, [r9, #6]
  sub sp, sp, #12
  str r2, [sp, #8]
  stmia sp, {r1, r3}  @ phole stm
  and sl, fp, #7
  movne ip, #0
  bne .L23669
.L23666:
  ldr r2, .L23760+12
  ldr r0, [sp, #4]
  ldr r3, [r2, sl, asl #2]
  ldr r2, .L23760+16
  and r3, r3, fp, lsr #8
  add lr, r2, r0, asl #2
  ldr r2, .L23760+20
  mov r1, #0
  mov r5, r1
  and r7, r3, #1
  and r0, r3, #16
  mov ip, #3
  and r8, r3, #8
  and r6, r3, #4
  and r4, r3, #2
  str r1, [r2, #0]
.L23696:
  cmp r8, #0
  beq .L23725
  ldrh  r3, [r9, #14]
  and r3, r3, #3
  cmp r3, ip
  ldreq r3, .L23760+24
  moveq r2, #3
  streq r2, [r3, r5, asl #2]
  addeq r5, r5, #1
.L23725:
  cmp r6, #0
  beq .L23728
  ldrh  r3, [r9, #12]
  and r3, r3, #3
  cmp r3, ip
  ldreq r3, .L23760+24
  moveq r2, #2
  streq r2, [r3, r5, asl #2]
  addeq r5, r5, #1
.L23728:
  cmp r4, #0
  beq .L23731
  ldrh  r3, [r9, #10]
  and r3, r3, #3
  cmp r3, ip
  ldreq r3, .L23760+24
  moveq r2, #1
  streq r2, [r3, r5, asl #2]
  addeq r5, r5, r2
.L23731:
  cmp r7, #0
  beq .L23698
  ldrh  r3, [r9, #8]
  and r3, r3, #3
  cmp r3, ip
  ldreq r3, .L23760+24
  moveq r2, #0
  streq r2, [r3, r5, asl #2]
  addeq r5, r5, #1
.L23698:
  ldr r3, [lr, #1920]
  cmp r3, #0
  beq .L23700
  cmp r0, #0
  ldrne r3, .L23760+24
  orrne r2, ip, #4
  strne r2, [r3, r5, asl #2]
  addne r5, r5, #1
.L23700:
  sub ip, ip, #1
  cmn ip, #1
  sub lr, lr, #640
  bne .L23696
  ldr r3, .L23760+20
  str r5, [r3, #0]
  ldr r3, .L23760+28
  ldr r1, [r3, #0]
  cmp r1, #0
  bne .L23734
  ldr r0, [sp, #0]
  ldr r4, [sp, #8]
  mov r2, r0, lsr #1
  ldr r0, [sp, #4]
  tst fp, #128
  mov r3, r0, asl #1
  mla r4, r3, r2, r4
  beq .L23706
  mov r3, r1
.L23708:
  mvn r1, #0  @ movhi
  strh  r1, [r3, r4]  @ movhi
  add r3, r3, #2
  cmp r3, #480
  bne .L23708
.L23709:
  ldr lr, .L23760+32
  ldr r4, .L23760+36
  ldr r5, [lr, #0]
  ldr r6, [r4, #0]
  ldr r3, [lr, #4]
  ldr r2, [r4, #4]
  ldrsh r7, [r9, #54]
  ldrsh r1, [r9, #34]
  ldrsh r0, [r9, #38]
  ldrsh ip, [r9, #50]
  add r5, r5, r1
  add r6, r6, r0
  add r3, r3, ip
  add r2, r2, r7
  str r3, [lr, #4]
  str r2, [r4, #4]
  str r5, [lr, #0]
  str r6, [r4, #0]
.L23734:
  add sp, sp, #12
  ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L23759:
  add ip, ip, #1
  cmp ip, #5
  beq .L23752
.L23669:
  ldr r1, .L23760+16
  add r3, ip, ip, asl #2
  add r2, r1, r3, asl #7
  mov r3, #0
.L23667:
  add r3, r3, #1
  mov r1, #0
  cmp r3, #160
  str r1, [r2], #4
  bne .L23667
  b .L23759
.L23752:
  ldr r3, .L23760+40
  add r2, r3, #640
.L23671:
  str r1, [r3], #4
  cmp r3, r2
  bne .L23671
  ldr r6, .L23760+44
  mov r7, #127
.L23673:
  ldrh  r2, [r6, #8]
  ldrh  r0, [r6, #12]
  and r1, r2, #49152
  and r3, r2, #768
  cmp r3, #512
  cmpne r1, #49152
  beq .L23674
  mov r3, r2, lsr #10
  and r4, r3, #3
  cmp r4, #3
  beq .L23674
  cmp sl, #2
  bls .L23677
  mov r3, r0, asl #22
  mov r3, r3, lsr #22
  cmp r3, #512
  bcc .L23674
.L23677:
  ldrh  r5, [r6, #10]
  and ip, r2, #255
  mov r3, r5, lsr #14
  orr r3, r3, r1, lsr #12
  ldr r1, .L23760+48
  cmp ip, #160
  subgt ip, ip, #256
  ldr r1, [r1, r3, asl #2]
  tst r2, #512
  ldr r2, .L23760+52
  movne r1, r1, asl #1
  ldr r2, [r2, r3, asl #2]
  add lr, ip, r1
  movne r2, r2, asl #1
  cmp lr, #0
  movle r3, #0
  movgt r3, #1
  cmp ip, #159
  movgt r3, #0
  cmp r3, #0
  beq .L23674
  mov r3, r5, asl #23
  mov r3, r3, asr #23
  add r2, r2, r3
  cmp r2, #0
  movle r1, #0
  movgt r1, #1
  cmp r3, #239
  movgt r1, #0
  cmp r1, #0
  beq .L23674
  cmp ip, #0
  movlt ip, #0
  cmp lr, #160
  movge lr, #160
  mov r3, r0, lsr #10
  cmp r4, #1
  and r3, r3, #3
  beq .L23754
  cmp r4, #2
  moveq r3, #4
  cmp ip, lr
  bge .L23674
  add r3, r3, r3, asl #2
  ldr r2, .L23760+56
  ldr r0, .L23760+16
  rsb r1, ip, lr
  add r3, ip, r3, asl #5
  mov r4, ip
  add r1, ip, r1
  add lr, r2, r3, asl #7
  and r5, r7, #255
  add ip, r0, r3, asl #2
.L23694:
  ldr r2, [ip, #0]
  add r4, r4, #1
  add r3, r2, #1
  cmp r4, r1
  strb  r5, [lr, r2]
  str r3, [ip], #4
  add lr, lr, #128
  bne .L23694
.L23674:
  sub r7, r7, #1
  cmn r7, #1
  sub r6, r6, #8
  bne .L23673
.L23755:
  ldr r1, .L23760+4
  mov r3, #0
  str r3, [r1, #0]
  b .L23666
.L23754:
  cmp ip, lr
  bge .L23674
  ldr r2, .L23760+56
  add r3, r3, r3, asl #2
  rsb r1, ip, lr
  add r3, ip, r3, asl #5
  add r8, ip, r1
  add r4, r2, r3, asl #7
  ldr r1, .L23760+16
  ldr r2, .L23760+40
  mov r5, ip
  and r0, r7, #255
  add lr, r1, r3, asl #2
  add ip, r2, ip, asl #2
.L23690:
  ldr r3, [lr, #0]
  ldr r2, [ip, #0]
  add r5, r5, #1
  add r1, r3, #1
  add r2, r2, #1
  cmp r5, r8
  strb  r0, [r4, r3]
  str r1, [lr], #4
  str r2, [ip], #4
  add r4, r4, #128
  bne .L23690
  sub r7, r7, #1
  cmn r7, #1
  sub r6, r6, #8
  bne .L23673
  b .L23755
.L23706:
  cmp sl, #2
  bls .L23756
  movs  r0, fp, lsr #13
  bne .L23757
  ldr r3, .L23760+60
  ldr r2, .L23760+64
  ldrh  r1, [r3, #0]
  add r8, r2, sl, asl #2
  mov r3, r0
.L23716:
  strh  r1, [r3, r4]  @ movhi
  add r3, r3, #2
  cmp r3, #480
  bne .L23716
  cmp r5, #0
  beq .L23709
  ldr r6, .L23760+24
  and r7, fp, #64
  mov r5, #0
  b .L23719
.L23758:
  bl  render_scanline_obj_normal_1D
.L23724:
  ldr r0, .L23760+20
  add r5, r5, #1
  ldr r3, [r0, #0]
  add r6, r6, #4
  cmp r3, r5
  bls .L23709
.L23719:
  ldr ip, [r6, #0]
  mov r1, #240
  ands  r0, ip, #4
  mov r2, r4
  beq .L23720
  sub r1, r1, #240
  bic ip, ip, #4
  cmp r7, r1
  mov r2, #240
  mov r3, r4
  mov r0, ip
  bne .L23758
  mov r0, ip
  mov r1, r7
  mov r2, #240
  mov r3, r4
  bl  render_scanline_obj_normal_2D
  b .L23724
.L23756:
  movs  r2, fp, lsr #13
  beq .L23712
  mov r0, r4
  mov r1, fp
  bl  render_scanline_window_tile
  b .L23709
.L23720:
  mov lr, pc
  ldr pc, [r8, #0]
  b .L23724
.L23712:
  mov r0, r4
  mov r1, fp
  bl  render_scanline_tile
  b .L23709
.L23757:
  mov r0, r4
  mov r1, fp
  bl  render_scanline_window_bitmap
  b .L23709
.L23761:
  .align  2
.L23760:
  .word screen
  .word oam_update
  .word io_registers
  .word active_layers
  .word obj_priority_count
  .word layer_count
  .word layer_order
  .word skip_next_frame
  .word affine_reference_x
  .word affine_reference_y
  .word obj_alpha_count
  .word oam_ram+1008
  .word obj_height_table
  .word obj_width_table
  .word obj_priority_list
  .word palette_ram_converted
  .word bitmap_mode_renderers-12
  .size update_scanline, .-update_scanline
  .global video_scale
  .section  .rodata
  .align  2
  .type video_scale, %object
  .size video_scale, 4
video_scale:
  .word 1
  .global map_widths
  .data
  .align  2
  .type map_widths, %object
  .size map_widths, 16
map_widths:
  .word 256
  .word 512
  .word 256
  .word 512
  .global map_heights
  .align  2
  .type map_heights, %object
  .size map_heights, 16
map_heights:
  .word 256
  .word 256
  .word 512
  .word 512
  .global tile_mode_renderers
  .align  2
  .type tile_mode_renderers, %object
  .size tile_mode_renderers, 384
tile_mode_renderers:
  .word render_scanline_text_base_normal
  .word render_scanline_text_transparent_normal
  .word render_scanline_text_base_alpha
  .word render_scanline_text_transparent_alpha
  .word render_scanline_text_base_color16
  .word render_scanline_text_transparent_color16
  .word render_scanline_text_base_color32
  .word render_scanline_text_transparent_color32
  .word render_scanline_text_base_normal
  .word render_scanline_text_transparent_normal
  .word render_scanline_text_base_alpha
  .word render_scanline_text_transparent_alpha
  .word render_scanline_text_base_color16
  .word render_scanline_text_transparent_color16
  .word render_scanline_text_base_color32
  .word render_scanline_text_transparent_color32
  .word render_scanline_text_base_normal
  .word render_scanline_text_transparent_normal
  .word render_scanline_text_base_alpha
  .word render_scanline_text_transparent_alpha
  .word render_scanline_text_base_color16
  .word render_scanline_text_transparent_color16
  .word render_scanline_text_base_color32
  .word render_scanline_text_transparent_color32
  .word render_scanline_text_base_normal
  .word render_scanline_text_transparent_normal
  .word render_scanline_text_base_alpha
  .word render_scanline_text_transparent_alpha
  .word render_scanline_text_base_color16
  .word render_scanline_text_transparent_color16
  .word render_scanline_text_base_color32
  .word render_scanline_text_transparent_color32
  .word render_scanline_text_base_normal
  .word render_scanline_text_transparent_normal
  .word render_scanline_text_base_alpha
  .word render_scanline_text_transparent_alpha
  .word render_scanline_text_base_color16
  .word render_scanline_text_transparent_color16
  .word render_scanline_text_base_color32
  .word render_scanline_text_transparent_color32
  .word render_scanline_text_base_normal
  .word render_scanline_text_transparent_normal
  .word render_scanline_text_base_alpha
  .word render_scanline_text_transparent_alpha
  .word render_scanline_text_base_color16
  .word render_scanline_text_transparent_color16
  .word render_scanline_text_base_color32
  .word render_scanline_text_transparent_color32
  .word render_scanline_affine_base_normal
  .word render_scanline_affine_transparent_normal
  .word render_scanline_affine_base_alpha
  .word render_scanline_affine_transparent_alpha
  .word render_scanline_affine_base_color16
  .word render_scanline_affine_transparent_color16
  .word render_scanline_affine_base_color32
  .word render_scanline_affine_transparent_color32
  .word render_scanline_text_base_normal
  .word render_scanline_text_transparent_normal
  .word render_scanline_text_base_alpha
  .word render_scanline_text_transparent_alpha
  .word render_scanline_text_base_color16
  .word render_scanline_text_transparent_color16
  .word render_scanline_text_base_color32
  .word render_scanline_text_transparent_color32
  .word render_scanline_text_base_normal
  .word render_scanline_text_transparent_normal
  .word render_scanline_text_base_alpha
  .word render_scanline_text_transparent_alpha
  .word render_scanline_text_base_color16
  .word render_scanline_text_transparent_color16
  .word render_scanline_text_base_color32
  .word render_scanline_text_transparent_color32
  .word render_scanline_text_base_normal
  .word render_scanline_text_transparent_normal
  .word render_scanline_text_base_alpha
  .word render_scanline_text_transparent_alpha
  .word render_scanline_text_base_color16
  .word render_scanline_text_transparent_color16
  .word render_scanline_text_base_color32
  .word render_scanline_text_transparent_color32
  .word render_scanline_affine_base_normal
  .word render_scanline_affine_transparent_normal
  .word render_scanline_affine_base_alpha
  .word render_scanline_affine_transparent_alpha
  .word render_scanline_affine_base_color16
  .word render_scanline_affine_transparent_color16
  .word render_scanline_affine_base_color32
  .word render_scanline_affine_transparent_color32
  .word render_scanline_affine_base_normal
  .word render_scanline_affine_transparent_normal
  .word render_scanline_affine_base_alpha
  .word render_scanline_affine_transparent_alpha
  .word render_scanline_affine_base_color16
  .word render_scanline_affine_transparent_color16
  .word render_scanline_affine_base_color32
  .word render_scanline_affine_transparent_color32
  .global bitmap_mode_renderers
  .align  2
  .type bitmap_mode_renderers, %object
  .size bitmap_mode_renderers, 12
bitmap_mode_renderers:
  .word render_scanline_bitmap_mode3_normal
  .word render_scanline_bitmap_mode4_normal
  .word render_scanline_bitmap_mode5_normal
  .global obj_width_table
  .align  2
  .type obj_width_table, %object
  .size obj_width_table, 48
obj_width_table:
  .word 8
  .word 16
  .word 32
  .word 64
  .word 16
  .word 32
  .word 32
  .word 64
  .word 8
  .word 8
  .word 16
  .word 32
  .global obj_height_table
  .align  2
  .type obj_height_table, %object
  .size obj_height_table, 48
obj_height_table:
  .word 8
  .word 16
  .word 32
  .word 64
  .word 8
  .word 8
  .word 16
  .word 32
  .word 16
  .word 32
  .word 32
  .word 64
  .global active_layers
  .align  2
  .type active_layers, %object
  .size active_layers, 24
active_layers:
  .word 31
  .word 23
  .word 28
  .word 20
  .word 20
  .word 20
  .global small_resolution_width
  .align  2
  .type small_resolution_width, %object
  .size small_resolution_width, 4
small_resolution_width:
  .word 240
  .global small_resolution_height
  .align  2
  .type small_resolution_height, %object
  .size small_resolution_height, 4
small_resolution_height:
  .word 160
  .global screen_scale
  .align  2
  .type screen_scale, %object
  .size screen_scale, 4
screen_scale:
  .word 1
  .global current_scale
  .align  2
  .type current_scale, %object
  .size current_scale, 4
current_scale:
  .word 1
  .global screen_filter
  .align  2
  .type screen_filter, %object
  .size screen_filter, 4
screen_filter:
  .word 1
  .global debug_cursor_x
  .bss
  .align  2
  .type debug_cursor_x, %object
  .size debug_cursor_x, 4
debug_cursor_x:
  .space  4
  .global debug_cursor_y
  .align  2
  .type debug_cursor_y, %object
  .size debug_cursor_y, 4
debug_cursor_y:
  .space  4
  .section  .rodata
  .align  2
  .type _font_offset, %object
  .size _font_offset, 1024
_font_offset:
  .word 0
  .word 10
  .word 20
  .word 30
  .word 40
  .word 50
  .word 60
  .word 70
  .word 80
  .word 90
  .word 100
  .word 110
  .word 120
  .word 130
  .word 140
  .word 150
  .word 160
  .word 170
  .word 180
  .word 190
  .word 200
  .word 210
  .word 220
  .word 230
  .word 240
  .word 250
  .word 260
  .word 270
  .word 280
  .word 290
  .word 300
  .word 310
  .word 320
  .word 330
  .word 340
  .word 350
  .word 360
  .word 370
  .word 380
  .word 390
  .word 400
  .word 410
  .word 420
  .word 430
  .word 440
  .word 450
  .word 460
  .word 470
  .word 480
  .word 490
  .word 500
  .word 510
  .word 520
  .word 530
  .word 540
  .word 550
  .word 560
  .word 570
  .word 580
  .word 590
  .word 600
  .word 610
  .word 620
  .word 630
  .word 640
  .word 650
  .word 660
  .word 670
  .word 680
  .word 690
  .word 700
  .word 710
  .word 720
  .word 730
  .word 740
  .word 750
  .word 760
  .word 770
  .word 780
  .word 790
  .word 800
  .word 810
  .word 820
  .word 830
  .word 840
  .word 850
  .word 860
  .word 870
  .word 880
  .word 890
  .word 900
  .word 910
  .word 920
  .word 930
  .word 940
  .word 950
  .word 960
  .word 970
  .word 980
  .word 990
  .word 1000
  .word 1010
  .word 1020
  .word 1030
  .word 1040
  .word 1050
  .word 1060
  .word 1070
  .word 1080
  .word 1090
  .word 1100
  .word 1110
  .word 1120
  .word 1130
  .word 1140
  .word 1150
  .word 1160
  .word 1170
  .word 1180
  .word 1190
  .word 1200
  .word 1210
  .word 1220
  .word 1230
  .word 1240
  .word 1250
  .word 1260
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 1270
  .word 1280
  .word 1290
  .word 1300
  .word 1310
  .word 1320
  .word 1330
  .word 1340
  .word 1350
  .word 1360
  .word 1370
  .word 1380
  .word 1390
  .word 1400
  .word 1410
  .word 1420
  .word 1430
  .word 1440
  .word 1450
  .word 1460
  .word 1470
  .word 1480
  .word 1490
  .word 1500
  .word 1510
  .word 1520
  .word 1530
  .word 1540
  .word 1550
  .word 1560
  .word 1570
  .word 1580
  .word 1590
  .word 1600
  .word 1610
  .word 1620
  .word 1630
  .word 1640
  .word 1650
  .word 1660
  .word 1670
  .word 1680
  .word 1690
  .word 1700
  .word 1710
  .word 1720
  .word 1730
  .word 1740
  .word 1750
  .word 1760
  .word 1770
  .word 1780
  .word 1790
  .word 1800
  .word 1810
  .word 1820
  .word 1830
  .word 1840
  .word 1850
  .word 1860
  .word 1870
  .word 1880
  .word 1890
  .word 1900
  .word 1910
  .word 1920
  .word 1930
  .word 1940
  .word 1950
  .word 1960
  .word 1970
  .word 1980
  .word 1990
  .word 2000
  .word 2010
  .word 2020
  .word 2030
  .word 2040
  .word 2050
  .word 2060
  .word 2070
  .word 2080
  .word 2090
  .word 2100
  .word 2110
  .word 2120
  .word 2130
  .word 2140
  .word 2150
  .word 2160
  .word 2170
  .word 2180
  .word 2190
  .word 2200
  .word 2210
  .word 2220
  .align  1
  .type _font_bits, %object
  .size _font_bits, 4460
_font_bits:
  .short  0
  .short  -22528
  .short  0
  .short  -30720
  .short  0
  .short  -30720
  .short  0
  .short  -22528
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  28672
  .short  -2048
  .short  28672
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  -22528
  .short  21504
  .short  -22528
  .short  21504
  .short  -22528
  .short  21504
  .short  -22528
  .short  21504
  .short  -22528
  .short  21504
  .short  0
  .short  -28672
  .short  -28672
  .short  -4096
  .short  -28672
  .short  -28672
  .short  30720
  .short  4096
  .short  4096
  .short  4096
  .short  0
  .short  -8192
  .short  -32768
  .short  -16384
  .short  -32768
  .short  -18432
  .short  8192
  .short  12288
  .short  8192
  .short  8192
  .short  0
  .short  28672
  .short  -32768
  .short  -32768
  .short  28672
  .short  28672
  .short  18432
  .short  28672
  .short  18432
  .short  18432
  .short  0
  .short  -32768
  .short  -32768
  .short  -32768
  .short  -4096
  .short  30720
  .short  16384
  .short  28672
  .short  16384
  .short  16384
  .short  0
  .short  8192
  .short  20480
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  8192
  .short  -2048
  .short  8192
  .short  8192
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  -28672
  .short  -12288
  .short  -12288
  .short  -20480
  .short  -28672
  .short  16384
  .short  16384
  .short  16384
  .short  30720
  .short  0
  .short  -28672
  .short  -28672
  .short  24576
  .short  16384
  .short  30720
  .short  4096
  .short  4096
  .short  4096
  .short  4096
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  -8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  15360
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  15360
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  -1024
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  -1024
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -1024
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -1024
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -1024
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -1024
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  15360
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  -8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  -1024
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -1024
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  6144
  .short  24576
  .short  -32768
  .short  24576
  .short  6144
  .short  0
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  -16384
  .short  12288
  .short  2048
  .short  12288
  .short  -16384
  .short  0
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  20480
  .short  20480
  .short  20480
  .short  20480
  .short  0
  .short  0
  .short  0
  .short  2048
  .short  4096
  .short  -2048
  .short  8192
  .short  -2048
  .short  16384
  .short  -32768
  .short  0
  .short  0
  .short  0
  .short  12288
  .short  18432
  .short  16384
  .short  -8192
  .short  16384
  .short  18432
  .short  -20480
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  20480
  .short  20480
  .short  20480
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  20480
  .short  20480
  .short  -2048
  .short  20480
  .short  -2048
  .short  20480
  .short  20480
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  28672
  .short  -24576
  .short  28672
  .short  10240
  .short  28672
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  18432
  .short  -22528
  .short  20480
  .short  8192
  .short  20480
  .short  -22528
  .short  -28672
  .short  0
  .short  0
  .short  0
  .short  16384
  .short  -24576
  .short  -24576
  .short  16384
  .short  -22528
  .short  -28672
  .short  26624
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  16384
  .short  16384
  .short  16384
  .short  8192
  .short  4096
  .short  0
  .short  0
  .short  0
  .short  16384
  .short  8192
  .short  4096
  .short  4096
  .short  4096
  .short  8192
  .short  16384
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  20480
  .short  -2048
  .short  20480
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  8192
  .short  -2048
  .short  8192
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  12288
  .short  8192
  .short  16384
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  28672
  .short  8192
  .short  0
  .short  0
  .short  2048
  .short  2048
  .short  4096
  .short  8192
  .short  16384
  .short  -32768
  .short  -32768
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  -30720
  .short  -30720
  .short  -30720
  .short  20480
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  24576
  .short  -24576
  .short  8192
  .short  8192
  .short  8192
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  2048
  .short  12288
  .short  16384
  .short  -32768
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  2048
  .short  4096
  .short  12288
  .short  2048
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  4096
  .short  12288
  .short  20480
  .short  -28672
  .short  -2048
  .short  4096
  .short  4096
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  -32768
  .short  -20480
  .short  -14336
  .short  2048
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  12288
  .short  16384
  .short  -32768
  .short  -20480
  .short  -14336
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  2048
  .short  4096
  .short  4096
  .short  8192
  .short  16384
  .short  16384
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  28672
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -26624
  .short  26624
  .short  2048
  .short  4096
  .short  24576
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  28672
  .short  8192
  .short  0
  .short  8192
  .short  28672
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  28672
  .short  8192
  .short  0
  .short  12288
  .short  8192
  .short  16384
  .short  0
  .short  0
  .short  2048
  .short  4096
  .short  8192
  .short  16384
  .short  8192
  .short  4096
  .short  2048
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  0
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  16384
  .short  8192
  .short  4096
  .short  2048
  .short  4096
  .short  8192
  .short  16384
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  4096
  .short  8192
  .short  8192
  .short  0
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -26624
  .short  -22528
  .short  -20480
  .short  -32768
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  -30720
  .short  -30720
  .short  -2048
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  -4096
  .short  18432
  .short  18432
  .short  28672
  .short  18432
  .short  18432
  .short  -4096
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -32768
  .short  -32768
  .short  -32768
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  -4096
  .short  18432
  .short  18432
  .short  18432
  .short  18432
  .short  18432
  .short  -4096
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  -32768
  .short  -32768
  .short  -4096
  .short  -32768
  .short  -32768
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  -32768
  .short  -32768
  .short  -4096
  .short  -32768
  .short  -32768
  .short  -32768
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -32768
  .short  -32768
  .short  -26624
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -2048
  .short  -30720
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  14336
  .short  4096
  .short  4096
  .short  4096
  .short  4096
  .short  -28672
  .short  24576
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -28672
  .short  -24576
  .short  -16384
  .short  -24576
  .short  -28672
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  -32768
  .short  -32768
  .short  -32768
  .short  -32768
  .short  -32768
  .short  -32768
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  -10240
  .short  -22528
  .short  -30720
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  -14336
  .short  -22528
  .short  -26624
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  -4096
  .short  -30720
  .short  -30720
  .short  -4096
  .short  -32768
  .short  -32768
  .short  -32768
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -22528
  .short  28672
  .short  2048
  .short  0
  .short  0
  .short  -4096
  .short  -30720
  .short  -30720
  .short  -4096
  .short  -24576
  .short  -28672
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -32768
  .short  28672
  .short  2048
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  20480
  .short  20480
  .short  20480
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -22528
  .short  -22528
  .short  -10240
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  20480
  .short  8192
  .short  20480
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  20480
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  2048
  .short  4096
  .short  8192
  .short  16384
  .short  -32768
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  16384
  .short  16384
  .short  16384
  .short  16384
  .short  16384
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  -32768
  .short  -32768
  .short  16384
  .short  8192
  .short  4096
  .short  2048
  .short  2048
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  4096
  .short  4096
  .short  4096
  .short  4096
  .short  4096
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  0
  .short  8192
  .short  4096
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  2048
  .short  30720
  .short  -30720
  .short  30720
  .short  0
  .short  0
  .short  0
  .short  -32768
  .short  -32768
  .short  -20480
  .short  -14336
  .short  -30720
  .short  -14336
  .short  -20480
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -32768
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  2048
  .short  2048
  .short  26624
  .short  -26624
  .short  -30720
  .short  -26624
  .short  26624
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -2048
  .short  -32768
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  12288
  .short  18432
  .short  16384
  .short  -4096
  .short  16384
  .short  16384
  .short  16384
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  30720
  .short  -30720
  .short  -30720
  .short  30720
  .short  2048
  .short  -30720
  .short  28672
  .short  0
  .short  -32768
  .short  -32768
  .short  -20480
  .short  -14336
  .short  -30720
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  0
  .short  24576
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  2048
  .short  0
  .short  6144
  .short  2048
  .short  2048
  .short  2048
  .short  18432
  .short  18432
  .short  12288
  .short  0
  .short  -32768
  .short  -32768
  .short  -30720
  .short  -28672
  .short  -8192
  .short  -28672
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  24576
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -12288
  .short  -22528
  .short  -22528
  .short  -22528
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -20480
  .short  -14336
  .short  -30720
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -20480
  .short  -14336
  .short  -30720
  .short  -14336
  .short  -20480
  .short  -32768
  .short  -32768
  .short  0
  .short  0
  .short  0
  .short  26624
  .short  -26624
  .short  -30720
  .short  -26624
  .short  26624
  .short  2048
  .short  2048
  .short  0
  .short  0
  .short  0
  .short  -20480
  .short  -14336
  .short  -32768
  .short  -32768
  .short  -32768
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -32768
  .short  28672
  .short  2048
  .short  -4096
  .short  0
  .short  0
  .short  0
  .short  16384
  .short  16384
  .short  -4096
  .short  16384
  .short  16384
  .short  18432
  .short  12288
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -26624
  .short  26624
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  20480
  .short  20480
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  -22528
  .short  -22528
  .short  20480
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  20480
  .short  8192
  .short  20480
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  -26624
  .short  26624
  .short  2048
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  -2048
  .short  4096
  .short  8192
  .short  16384
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  6144
  .short  8192
  .short  4096
  .short  24576
  .short  4096
  .short  8192
  .short  6144
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  24576
  .short  4096
  .short  8192
  .short  6144
  .short  8192
  .short  4096
  .short  24576
  .short  0
  .short  0
  .short  0
  .short  18432
  .short  -22528
  .short  -28672
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  0
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  30720
  .short  -24576
  .short  -24576
  .short  -24576
  .short  30720
  .short  8192
  .short  0
  .short  0
  .short  12288
  .short  18432
  .short  16384
  .short  -8192
  .short  16384
  .short  18432
  .short  -20480
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  28672
  .short  20480
  .short  28672
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  20480
  .short  8192
  .short  -2048
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  0
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -32768
  .short  -8192
  .short  -28672
  .short  18432
  .short  14336
  .short  2048
  .short  28672
  .short  0
  .short  20480
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -22528
  .short  -14336
  .short  -22528
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  14336
  .short  18432
  .short  22528
  .short  10240
  .short  0
  .short  30720
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  9216
  .short  18432
  .short  -28672
  .short  18432
  .short  9216
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  30720
  .short  2048
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  30720
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -6144
  .short  -14336
  .short  -14336
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  -2048
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  8192
  .short  -2048
  .short  8192
  .short  8192
  .short  -2048
  .short  0
  .short  0
  .short  12288
  .short  18432
  .short  4096
  .short  8192
  .short  30720
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  2048
  .short  12288
  .short  2048
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -14336
  .short  -20480
  .short  -32768
  .short  0
  .short  0
  .short  30720
  .short  -6144
  .short  -6144
  .short  26624
  .short  10240
  .short  10240
  .short  10240
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  8192
  .short  24576
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  12288
  .short  18432
  .short  18432
  .short  12288
  .short  0
  .short  30720
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -28672
  .short  18432
  .short  9216
  .short  18432
  .short  -28672
  .short  0
  .short  0
  .short  16384
  .short  -16384
  .short  16384
  .short  16384
  .short  -7168
  .short  3072
  .short  5120
  .short  15360
  .short  1024
  .short  0
  .short  16384
  .short  -16384
  .short  16384
  .short  16384
  .short  -6144
  .short  5120
  .short  1024
  .short  2048
  .short  7168
  .short  0
  .short  -16384
  .short  8192
  .short  16384
  .short  8192
  .short  -14336
  .short  6144
  .short  10240
  .short  30720
  .short  2048
  .short  0
  .short  0
  .short  8192
  .short  0
  .short  8192
  .short  8192
  .short  16384
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  16384
  .short  8192
  .short  28672
  .short  -30720
  .short  -30720
  .short  -2048
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  28672
  .short  -30720
  .short  -30720
  .short  -2048
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  28672
  .short  -30720
  .short  -30720
  .short  -2048
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  18432
  .short  -20480
  .short  28672
  .short  -30720
  .short  -30720
  .short  -2048
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  20480
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  -2048
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  28672
  .short  -30720
  .short  -30720
  .short  -2048
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  15360
  .short  20480
  .short  -28672
  .short  -25600
  .short  -4096
  .short  -28672
  .short  -25600
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -32768
  .short  -32768
  .short  -32768
  .short  -30720
  .short  28672
  .short  8192
  .short  16384
  .short  16384
  .short  -2048
  .short  -32768
  .short  -32768
  .short  -4096
  .short  -32768
  .short  -32768
  .short  -2048
  .short  0
  .short  0
  .short  4096
  .short  -2048
  .short  -32768
  .short  -32768
  .short  -4096
  .short  -32768
  .short  -32768
  .short  -2048
  .short  0
  .short  0
  .short  8192
  .short  -2048
  .short  -32768
  .short  -32768
  .short  -4096
  .short  -32768
  .short  -32768
  .short  -2048
  .short  0
  .short  0
  .short  20480
  .short  -2048
  .short  -32768
  .short  -32768
  .short  -4096
  .short  -32768
  .short  -32768
  .short  -2048
  .short  0
  .short  0
  .short  16384
  .short  8192
  .short  28672
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  28672
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  28672
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  20480
  .short  0
  .short  28672
  .short  8192
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  -4096
  .short  18432
  .short  18432
  .short  -6144
  .short  18432
  .short  18432
  .short  -4096
  .short  0
  .short  0
  .short  10240
  .short  20480
  .short  -30720
  .short  -14336
  .short  -22528
  .short  -26624
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  16384
  .short  8192
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  10240
  .short  20480
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  20480
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  -30720
  .short  20480
  .short  8192
  .short  20480
  .short  -30720
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -26624
  .short  -26624
  .short  -22528
  .short  -14336
  .short  -14336
  .short  28672
  .short  0
  .short  0
  .short  16384
  .short  8192
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  20480
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  -30720
  .short  -30720
  .short  20480
  .short  8192
  .short  8192
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  -32768
  .short  -4096
  .short  -30720
  .short  -4096
  .short  -32768
  .short  -32768
  .short  -32768
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -28672
  .short  -24576
  .short  -28672
  .short  -30720
  .short  -20480
  .short  0
  .short  0
  .short  16384
  .short  8192
  .short  0
  .short  28672
  .short  2048
  .short  30720
  .short  -30720
  .short  30720
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  0
  .short  28672
  .short  2048
  .short  30720
  .short  -30720
  .short  30720
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  0
  .short  28672
  .short  2048
  .short  30720
  .short  -30720
  .short  30720
  .short  0
  .short  0
  .short  10240
  .short  20480
  .short  0
  .short  28672
  .short  2048
  .short  30720
  .short  -30720
  .short  30720
  .short  0
  .short  0
  .short  0
  .short  20480
  .short  0
  .short  28672
  .short  2048
  .short  30720
  .short  -30720
  .short  30720
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  8192
  .short  28672
  .short  2048
  .short  30720
  .short  -30720
  .short  30720
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  30720
  .short  5120
  .short  31744
  .short  -28672
  .short  31744
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  28672
  .short  -30720
  .short  -32768
  .short  -30720
  .short  28672
  .short  8192
  .short  16384
  .short  16384
  .short  8192
  .short  0
  .short  28672
  .short  -30720
  .short  -2048
  .short  -32768
  .short  28672
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  0
  .short  28672
  .short  -30720
  .short  -2048
  .short  -32768
  .short  28672
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  0
  .short  28672
  .short  -30720
  .short  -2048
  .short  -32768
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  20480
  .short  0
  .short  28672
  .short  -30720
  .short  -2048
  .short  -32768
  .short  28672
  .short  0
  .short  0
  .short  16384
  .short  8192
  .short  0
  .short  24576
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  8192
  .short  16384
  .short  0
  .short  24576
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  0
  .short  24576
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  20480
  .short  0
  .short  24576
  .short  8192
  .short  8192
  .short  8192
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  -16384
  .short  12288
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  10240
  .short  20480
  .short  0
  .short  -20480
  .short  -14336
  .short  -30720
  .short  -30720
  .short  -30720
  .short  0
  .short  0
  .short  16384
  .short  8192
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  10240
  .short  20480
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  20480
  .short  0
  .short  28672
  .short  -30720
  .short  -30720
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  0
  .short  0
  .short  8192
  .short  0
  .short  -2048
  .short  0
  .short  8192
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  0
  .short  30720
  .short  -26624
  .short  -22528
  .short  -14336
  .short  -4096
  .short  0
  .short  0
  .short  16384
  .short  8192
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -26624
  .short  26624
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -26624
  .short  26624
  .short  0
  .short  0
  .short  8192
  .short  20480
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -26624
  .short  26624
  .short  0
  .short  0
  .short  0
  .short  20480
  .short  0
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -26624
  .short  26624
  .short  0
  .short  0
  .short  0
  .short  4096
  .short  8192
  .short  -30720
  .short  -30720
  .short  -26624
  .short  26624
  .short  2048
  .short  -30720
  .short  28672
  .short  0
  .short  0
  .short  -32768
  .short  -4096
  .short  -30720
  .short  -30720
  .short  -30720
  .short  -4096
  .short  -32768
  .short  -32768
  .short  0
  .short  20480
  .short  0
  .short  -30720
  .short  -30720
  .short  -26624
  .short  26624
  .short  2048
  .short  -30720
  .short  28672
  .align  2
  .type C.627.17651, %object
  .size C.627.17651, 8
C.627.17651:
  .short  40
  .short  40
  .short  240
  .short  160
  .align  2
  .type C.626.17650, %object
  .size C.626.17650, 8
C.626.17650:
  .short  0
  .short  0
  .short  240
  .short  160
  .global affine_reference_x
  .bss
  .align  2
  .type affine_reference_x, %object
  .size affine_reference_x, 8
affine_reference_x:
  .space  8
  .global affine_reference_y
  .align  2
  .type affine_reference_y, %object
  .size affine_reference_y, 8
affine_reference_y:
  .space  8
  .global hw_screen
  .align  2
  .type hw_screen, %object
  .size hw_screen, 4
hw_screen:
  .space  4
  .global screen
  .align  2
  .type screen, %object
  .size screen, 4
screen:
  .space  4
  .global obj_priority_list
  .type obj_priority_list, %object
  .size obj_priority_list, 102400
obj_priority_list:
  .space  102400
  .global obj_priority_count
  .align  2
  .type obj_priority_count, %object
  .size obj_priority_count, 3200
obj_priority_count:
  .space  3200
  .global obj_alpha_count
  .align  2
  .type obj_alpha_count, %object
  .size obj_alpha_count, 640
obj_alpha_count:
  .space  640
  .global layer_order
  .align  2
  .type layer_order, %object
  .size layer_order, 64
layer_order:
  .space  64
  .global layer_count
  .align  2
  .type layer_count, %object
  .size layer_count, 4
layer_count:
  .space  4
  .global resolution_width
  .align  2
  .type resolution_width, %object
  .size resolution_width, 4
resolution_width:
  .space  4
  .global resolution_height
  .align  2
  .type resolution_height, %object
  .size resolution_height, 4
resolution_height:
  .space  4
  .global frame_to_render
  .align  2
  .type frame_to_render, %object
  .size frame_to_render, 4
frame_to_render:
  .space  4
  .ident  "GCC: (GNU) 4.1.1"
